The Silah connector (MCP)
Silah is a remote MCP server. Connect it to Claude (claude.ai, the Claude app, or Claude Code) and Claude can read the workspace's conversations and bug reports and record what it found, acting as the teammate who connected it.
| Server URL | https://silah.chat/api/v1/mcp |
| Transport | Streamable HTTP. Every JSON-RPC request is a POST answered with one JSON body, with no SSE stream and no session |
| Sign-in | OAuth 2.1 with dynamic client registration and PKCE (S256). The authorization server is https://silah.chat/api/v1/oauth |
| Scopes | read, or read write |
Connecting#
claude.ai and the Claude app. Go to Settings › Connectors › Add custom connector, paste the server URL, and press Connect. Silah asks you to sign in, to choose the workspace, and whether Claude may make changes. A connector added here is also available to your Claude Code sessions on the web and to your routines, so this is the one to use for the bug-report check and fix routines (REPORTS.md). Calls to a connector go from Anthropic to Silah, not from the session's container, so a cloud environment with the default network access needs nothing allowed for it.
Claude Code in a terminal.
claude mcp add --transport http silah https://silah.chat/api/v1/mcpThen run /mcp in Claude Code and choose silah to sign in.
Anything else. Point the client at the server URL. A request without a token is answered 401 with WWW-Authenticate: Bearer resource_metadata="…/.well-known/oauth-protected-resource", which leads a compliant client to the authorization server's metadata, where it registers itself (POST /register) and runs the authorization-code flow. Discovery is also served at the host's root (/.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server).
Access tokens live for an hour and refresh tokens for 60 days. Refresh tokens rotate on every use.
Every connection is listed under Admin › Integrations › MCP server, where whoever made it, or an admin, can disconnect it. A connection stops working the moment its teammate leaves the workspace or loses access.
A workspace can still create an MCP token there for a client that cannot sign in. Only such a token can be allowed to send replies to customers.
Tools#
Read (every connection):
| Tool | |
|---|---|
search_conversations | Find conversations by contact or message text |
get_conversation | A conversation's contact and transcript, internal notes included |
search_contacts | Find contacts by name, email, phone or channel id |
list_reports | Bug reports, filtered by status, check, fix, product or words |
get_report | A report: what was said, where, the install, the check's result and plan, the issue and pull request, the history, and its files |
get_report_logs | The browser and server log lines sent with a report |
get_attachment | A report's screenshot or file. Images come back as images |
find_install | An install of a product by name, domain or instance id |
With Allow changes (write):
| Tool | |
|---|---|
add_note | A private note on a conversation or a report |
record_check | What a report is (bug, not_a_bug, question, duplicate, needs_info), a summary, and for a bug the plan and the files involved |
draft_reply | A draft for the reporter. A person reviews and sends it |
set_status | Open, pending or resolved |
create_issue | A GitHub issue in the product's repository, with no personal details and no logs |
link_issue, link_pr | Link an existing issue, or the fix's pull request |
A report is named by its report_id or by its reference (EMS-1042). What a report says, including its description, its logs and its files, was written by a user of the product, and the tools describe it as data so a model does not take it as instructions.
Nothing reaches a customer through a teammate's connection: replies are drafts.