Skip to Content
KeuralDocs
Developers

AI Drive MCP server

Search and read Keural Drive documents from external MCP clients such as Claude Desktop.

Keural Drive is provided as an MCP server. When an external MCP client connects, a user who holds a key can search the Drive documents they are allowed to see and read them page by page. Plugins connect external systems to Keural, while this server connects Keural documents to external AI.

Authentication uses an organization API key. Keural operations issue organization API keys, so request one from your adoption contact. The key works with the permissions of the one user it was issued to and requires the drive:read permission. When a key is revoked, existing connections are blocked within 1 minute.

Connection information

ItemValue
TransportMCP Streamable HTTP
Addresshttps://<agent server domain for each environment>/core/v1/mcp-drive
AuthenticationAuthorization: Bearer <organization API key> (every request)

Request methods

MethodUse
POSTOne JSON-RPC request. The response is always a single application/json. Notifications (notifications/*) return 202 with no body.
GETServer event stream. Requires Accept: text/event-stream and Mcp-Session-Id. Sends a keepalive every 15 seconds and resumes with Last-Event-ID.
DELETEEnds the session. Requires Mcp-Session-Id and returns 204.
  • When initialize succeeds, the session ID is returned in the Mcp-Session-Id response header. A session is optional, and you may send POST alone without one. A session is kept for 1 hour after the last request and is bound to the key that created it.
  • The MCP-Protocol-Version header is optional. If you send it, its value must be 2025-06-18.
  • The server information is keural-ai-drive, and the only capability it provides is tools.

HTTP errors

HTTP-level errors are not in JSON-RPC format, so check the status code.

StatusCause
401Key missing or incorrect, or a revoked or expired key
403The key does not have the drive:read permission
400Unsupported MCP-Protocol-Version, JSON parse failure (-32700), or no session ID on GET or DELETE
404Unknown or expired session ID
405GET without Accept: text/event-stream

JSON-RPC-level errors are returned with 200 as an error. An unknown method or tool returns -32601, and a malformed request returns -32600.

Tools

ToolInputDescription
list_filesNoneList of documents you can see (name, id, upload date, modified date, and uploader if someone else uploaded it). Drive documents and files attached in chats are returned together and distinguished by origin. Up to 500 items; if there are more, truncated: true is added
search_drivequerySearches document contents by meaning and returns related passages and citation information
read_document_pagefile_id, pageReads the full text of a specific page of a document. Get file_id from the results of the two tools above. page counts from 1

Tool results are carried as a JSON string in content[0].text.

ToolJSON inside text
list_files{"files":[{"name","id","created_date","modified_date","owner_name","origin"}], "truncated": false}. Dates are yyyy-MM-dd HH:mm
search_drive{"sources":[{"id","name","url","contents":[…]}]}
read_document_page{"file_id","page","rows":[…]}

When a tool fails, isError: true and {"error": "…"} are returned (not a JSON-RPC error). A document that you cannot access or that does not exist always returns file not found or not accessible.

Client configuration example

Register the address and header in a client that supports remote MCP servers. Configuration formats differ by client, so follow the client's way of adding a remote MCP server.

{
  "mcpServers": {
    "keural-drive": {
      "type": "http",
      "url": "https://<agent server domain for each environment>/core/v1/mcp-drive",
      "headers": { "Authorization": "Bearer <organization API key>" }
    }
  }
}

The MCP protocol version supported is 2025-06-18.

On this page