目前使用或集成MCP服务器很痛苦,因为:
所有设置说明、集成指南和示例都在我们的Notion文档中:
文档定期更新,包括:
创建一个.env文件(参考.env.example),包含以下变量:
# 数据库
DATABASE_URL=postgresql://localhost:5432/mcp_server
# 认证(选择一种)
# 选项A:HS256
JWT_SECRET=your-jwt-signing-secret
# 选项B:RS256通过JWKS
# JWT_JWKS_URL=https://your-auth-domain/.well-known/jwks.json
# JWT_ISSUER=https://your-auth-domain/
# JWT_AUDIENCE=my-api
# Slack OAuth
SLACK_CLIENT_ID=<slack_client_id>
SLACK_CLIENT_SECRET=<slack_client_secret>
SLACK_REDIRECT_URI=http://localhost:8000/slack/oauth/callback
# 可选:加密静态令牌(逗号分隔的MultiFernet密钥)
# TOKEN_ENCRYPTION_KEYS=
oauth_url 和授权工作区的说明。SLACK_REDIRECT_URI(默认为 /slack/oauth/callback)。oauth_tokens 中,复合键为 (client_id, integration_type),其中 client_id = 你的JWT主体(sub)。oauth_tokens(client_id, integration_type, token_json, stored_at)。DATABASE_URL 配置Postgres。TOKEN_ENCRYPTION_KEYS 设置时,令牌可以被加密存储。示例客户端条目(mcp.json):
{
"servers": {
"slack": {
"url": "http://localhost:8000/mcp/slack",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_JWT"
}
}
}
}
如果用户尚未完成OAuth,工具调用将返回一个对象,其中 requires_auth: true 并且有一个 oauth_url,你可以打开它来完成授权。
在VS Code用户设置中使用此 mcp.json(将 JWT 替换为你生成的令牌):
{
"servers": {
"slack": {
"url": "http://localhost:8000/mcp/slack",
"type": "http",
"headers": {
"Authorization": "Bearer JWT"
}
}
},
"inputs": []
}
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
client = MultiServerMCPClient(
{
"slack": {
"transport": "streamable_http",
"url": "http://localhost:8000/mcp/slack",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
},
}
}
)
tools = await client.get_tools()
agent = create_react_agent("openai:gpt-4.1", tools)
response = await agent.ainvoke({"messages": "Can you send hello message to my #general groups?"})
你可以使用Docker运行Bernerspace MCP:
docker build -t bernerspace-mcp .
docker run --env-file .env -p 8000:8000 bernerspace-mcp
我们才刚刚开始。我们的目标是支持超过100种集成,让你可以轻松地将任何第三方服务连接到你的MCP服务器。
…以及更多的即将推出。
我们欢迎各种形式的贡献——无论是修复一个bug、建议一个特性、改进文档,还是仅仅分享反馈。
无论你是第一次贡献者还是经验丰富的开发者,我们都期待听到你的声音并与你合作!
本项目根据MIT许可证发布。