MCP Tools Reference: homedevelopers.googleapis.com

Tool: search_documents

Use this tool to search for authoritative, real-time knowledge and technical documentation for the Google Home ecosystem, including Google Home APIs, Matter, Cloud-to-cloud, and Thread. This tool serves as the official knowledge backbone for Google Home, bridging gaps in model training with domain-specific data to ensure high accuracy and reduce hallucinations.

Use this tool when users ask for specific technical guidance, API signatures, or architectural details that require specialized technical context. This tool returns the full markdown content of the most relevant matching documents in a single turn, providing comprehensive context for immediate reasoning. Each returned document contains a source_url field. When you use information from a document, you MUST cite the source by including its source_url in your response to the user.

The following code sample shows how to use curl to call the search_documents MCP tool.

Curl Request
curl --location 'https://homedevelopers.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "search_documents",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Input Schema

Request message for HomeKnowledge.SearchDocuments

SearchDocumentsRequest

JSON representation
{
  "query": string,
  "pageSize": integer,
  "pageToken": string
}
Fields
query

string

Required. The natural language search query (e.g., "How to create an automation?").

pageSize

integer

Optional. The maximum number of documents to return. The service may return fewer than this value. If unspecified, at most 10 documents will be returned. The maximum value is 30; values above 30 will be coerced to 30.

pageToken

string

Optional. A page token received from a previous call to retrieve the next set of results.

Output Schema

Response message for HomeKnowledge.SearchDocuments.

SearchDocumentsResponse

JSON representation
{
  "results": [
    {
      object (SearchResult)
    }
  ],
  "nextPageToken": string
}
Fields
results[]

object (SearchResult)

The list of search results matching the query.

nextPageToken

string

Token to retrieve the next page. If empty, no more results exist.

SearchResult

JSON representation
{
  "document": {
    object (Document)
  }
}
Fields
document

object (Document)

The matched document resource.

Document

JSON representation
{
  "name": string,
  "title": string,
  "markdownContent": string,
  "sourceUrl": string
}
Fields
name

string

Identifier. The unique resource name of the document. Format: documents/{document}

title

string

The title of the document.

markdownContent

string

The full markdown content of the retrieved document.

sourceUrl

string

Optional. Specifies the source URL of the document.

Tool Annotations

Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.

Along with the title string, the following boolean hints are defined as follows:

  • readOnlyHint: If true, the tool doesn't modify its environment. Default: false.
  • destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.
  • idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.
  • openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.

Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌