Enlace Connector
БесплатноНе проверенDeploy Python functions as authenticated MCP connectors for Claude.ai and other MCP hosts, with pluggable OAuth and support for separate venvs for heavy depende
Описание
Deploy Python functions as authenticated MCP connectors for Claude.ai and other MCP hosts, with pluggable OAuth and support for separate venvs for heavy dependencies.
README
Deploy Python functions as authenticated MCP connectors on an enlace platform — so Claude.ai (and any MCP host) can call them.
A Claude.ai "custom connector" is a remote MCP server. enlace_connector wraps your
tool functions with py2mcp, plugs auth into
the platform's enlace_auth OAuth server,
and follows enlace's app conventions so deployment is one declaration.
from enlace_connector import ConnectorSpec, make_connector_app, scaffold_app
spec = ConnectorSpec(
name="trufflepig",
tools=["truffle.mcp:search_trufflepig", "truffle.mcp:search_wallow"],
auth="enlace", # validate tokens issued by the platform's enlace_auth
extras=["truffle"], # what the connector's own venv must install
)
# Develop locally (stdio, no auth) — Claude Desktop / Claude Code:
make_stdio_server(spec).run()
# The hosted ASGI app (Streamable HTTP + OAuth) a server runs:
app = make_connector_app(spec, issuer="https://apps.thorwhalen.com")
# Or scaffold an enlace mode=process app dir (own venv for heavy deps):
scaffold_app(spec, "tw_platform/apps/trufflepig_mcp", port=8030)
Why a separate venv (mode="process")
A connector with heavy dependencies (ML models, large libraries) runs as an enlace
mode="process" app: enlace spawns it as a supervised subprocess in its own venv
and reverse-proxies the route to it — keeping those deps out of the shared platform
backend. The connector validates bearer tokens itself, so enlace treats it as
access="public" (no session gate).
Auth is pluggable
The connector is an OAuth 2.1 resource server — it validates the bearer JWTs an authorization server issued. Who that AS is is just config:
auth= |
Authorization server | Use |
|---|---|---|
"enlace" |
the platform's enlace_auth OAuth server |
self-contained platform auth |
idp_resource(...) |
a managed IdP (Auth0, WorkOS, …) | offload OAuth to a vendor |
None / "none" |
— | local stdio / unauthenticated internal pilot |
The resource-server validation is identical regardless — picking an AS doesn't change the connector, only where the token comes from.
Deploy the whole bundle
generate_deploy_bundle(spec, dest) writes everything a mode="process" connector
needs — the app dir (app.toml + server.py), a systemd unit (runs it in its
own venv), a provisioning script (build that venv + install extras/git_installs
- create
datadirs +post_install), theresource_allowlistfragment (fromallowed_users), and a runbook:
spec = ConnectorSpec(
name="acme", tools=["acme.mcp:search"], route="/api/acme_mcp", port=8031,
extras=["ir", "sentence-transformers"], git_installs=["git+ssh://[email protected]/acme/acme"],
data=[("~/.local/share/ir/corpora/acme", "{base}/xdg-data/ir/corpora/acme")],
env={"XDG_DATA_HOME": "{base}/xdg-data", "HF_HOME": "{base}/hf-cache"},
allowed_users=["[email protected]", "[email protected]"],
)
generate_deploy_bundle(spec, "apps/acme_mcp") # → app dir + deploy/{unit,provision,allowlist,runbook}
Platform specifics (paths, origin) are parameters with tw_platform defaults; the
package stays connector-type-agnostic (it knows nothing of ir).
Cost / LLM note
A connector over ir's core search is offline and free — no LLM, no tokens.
An agentic connector (query reformulation, LLM-selection, synopsis) needs an LLM;
that LLM is an injected callable and can ride the client's Claude subscription via
MCP sampling (where the client supports it) instead of a metered key — see ir's
ir_10 note and issue #1 here.
Status
The connector factory, auth, scaffolding, and full deploy-bundle generation are
stable and tested; auth="enlace" is live in production. Building the connector app
directly (to attach a server icon, custom tools, etc.) is also supported — see the
server_py= override on generate_deploy_bundle.
pip install -e ".[dev]" && pytest -q
Установка Enlace Connector
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/i2mint/enlace_connectorFAQ
Enlace Connector MCP бесплатный?
Да, Enlace Connector MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Enlace Connector?
Нет, Enlace Connector работает без API-ключей и переменных окружения.
Enlace Connector — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Enlace Connector в Claude Desktop, Claude Code или Cursor?
Открой Enlace Connector на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Enlace Connector with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
