Klang over MCP
Klang runs a hosted Model Context Protocol server so AI assistants can read your meetings, conversations, notebooks, and private notes directly. Connect a client once, then ask it about your Klang content in plain language. No copying transcripts around: the client signs in with OAuth, or you hand it an API key.
What you can do
The Model Context Protocol (MCP) is an open standard that lets AI clients call tools on a remote server. Klang's server turns your workspace into a set of read tools the assistant can reach for on its own. Once connected, prompts like these work against your real data:
- Summarize what we decided about pricing across last week’s calls.
- Which customers brought up SSO this month?
- Find the interview where the claimant gave the accident date and quote it.
- List the open action items from every meeting in my onboarding folder.
The assistant lists your conversations, opens the relevant ones, and reads their transcripts and summaries to answer. It works the same in a case workflow, where you point it at a specific folder, and across a busy meeting workspace, where you let it find the threads for you.
Server URL
The server speaks Streamable HTTP at a single endpoint. For Klang Cloud that is:
https://app.klang.ai/api/mcp
Self-hosted and dedicated-tenant deployments use a different host. Open Settings → Developers → MCP in your Klang workspace to see and copy your exact URL.
Point any compliant MCP client at that URL and it handles the rest. See connecting clients for per-client setup.
Write access is per connection
A connection only reaches the one workspace it is bound to. Write access is decided per connection: Create and edit access is ticked by default on the consent screen when connecting with OAuth and when creating an API key; untick it for a read-only connection. With write access an assistant can also manage todos, tags and folders, rename or move conversations, and start transcriptions from a URL, a local file or a meeting bot. It still cannot delete conversations or share anything. See write tools.
Errors
Every failed call sets isError and returns {"error": {"type", "message"}}. type is one of validation (arguments rejected before the tool ran; the message names the field), bad_request, unauthorized, forbidden, not_found, conflict, rate_limited, plan_upgrade_required, integration_not_connected or internal_error. Some errors add a finer code (for example tag_name_taken) or extra fields such as upgrade_url or connect_url. Pagination cursors are bound to the tool that issued them.