Claude Connector Kit
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Connector Kitwhat tools does Claude see from my connector?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
claude-connector-kit
The shared parts of an MCP connector meant for Claude clients (claude.ai, the desktop app, the phone, Claude Code): an OAuth 2.1 server with a login page, so adding the connector is a URL and a password, and tool registration shaped for what a Claude client actually shows the model.
It sits on the official MCP Python SDK (mcp 2.x) and adds no framework of
its own.
What a Claude client shows the model
Only a tool's name, description and input schema. Not its output schema, title
or annotations; on claude.ai, not the server's instructions either. The
desktop app's Code and Cowork tabs strip an optional argument written
anyOf: [X, null], type and enum included. Claude Code cuts a description at
2,048 characters and warns at a 10,000-token result. So the kit:
publishes each input schema lean: no generated titles, an optional argument as its plain type,
additionalProperties: false, and an argument the tool does not take is refused rather than silently dropped;puts guidance on arguments (
about()), where every client shows it, rather than in instructions, which some drop;returns results as compact JSON (
result()); the SDK's default is indent 2, a token per space;hands the model the message of an expected error (
errors=), where the SDK would say only "Error executing tool".
Related MCP server: claudeai-mcp-bridge
Use
from typing import Annotated
from mcp.server.mcpserver import MCPServer
from claude_connector_kit import (READS, LoginRefused, Provider, Store, about, add_login,
auth_settings, result, tool)
URL, SCOPES = "https://thing.example.com", ["read"]
def check_login(login, password):
if password != PASSWORD:
raise LoginRefused("wrong password")
return "signed-in" # kept as the session; a backend token for a real login
provider = Provider(Store("/data/oauth.db"), URL, check_login, SCOPES)
server = MCPServer("thing", auth_server_provider=provider, auth=auth_settings(URL, SCOPES))
add_login(server, provider, what="thing", fixed_login="owner") # password only, one person
@tool(server, "Widgets", READS, errors=(ValueError,))
def widgets(since: Annotated[str | None, about("from this date, YYYY-MM-DD")] = None):
"""Widgets made since a date, newest first."""
return result({"columns": ["id", "made"], "rows": [[1, "2026-09-29"]]})
app = server.streamable_http_app()Put it behind HTTPS with a publicly trusted certificate, and pass /mcp,
/authorize, /token, /register, /revoke, /login and /.well-known/
to it. In claude.ai: Settings, Connectors, Add custom connector, the /mcp
URL, no client id or secret. In Claude Code: claude mcp add --transport http --scope user thing https://thing.example.com/mcp, then /mcp, Authenticate.
A script signs in the same way without a browser:
from claude_connector_kit import sign_in
token = sign_in("https://thing.example.com/mcp", password)model_view(server) returns what a client shows the model, for a test that
holds the tool list to a budget.
Grants
A sign-in stores a session for its login, and every grant (one per client
device) acts through it. Access tokens last an hour, refresh tokens 90 days. A
revoke from any client ends the session and so signs every client of that
login out; Store.end_session(login, credential) does the same when a backend
refuses the stored credential.
Tests
python -m pip install -e '.[dev]' && python -m pytest -q && ruff check .Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Hosted MCP server with managed OAuth for 15+ toolkits: Google Workspace, Fitbit, Oura, Kalshi, etc.
Your OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop and other MCP clients to interact with any OAuth2-authenticated OpenAPI-based API through automatic tool generation from OpenAPI specifications, with built-in token management and authentication handling.6 npm3MIT
- AlicenseNot gradedqualityDmaintenanceBridges your claude.ai authorized connectors (Slack, Atlassian, Gmail, Google Calendar) to any MCP client, enabling use of those tools without credential setup.2MIT
- AlicenseNot gradedqualityCmaintenanceA self-hosted, OAuth-fronted MCP proxy that lets Claude custom connectors reach RapidAPI's MCP endpoints by injecting API credentials, with per-upstream tool filtering and rate limiting.AGPL 3.0
- AlicenseBqualityBmaintenanceA lightweight OpenAPI proxy MCP server that turns any openapi.yaml into MCP tools with zero code, including a built-in OAuth 2.1 server for Claude.ai Web connection.49 npm4MIT