发生率低mcp
IncidentFlow MCP服务器在MIT许可证下是开源的。
IncidentFlow云平台和托管服务是专有的。
本地API文档(OpenAPI+Fern)
该存储库包含代码衍生的OpenAPI规范和Fern-docs配置,因此贡献者可以在本地检查完整的公共API表面。
记录了什么
- 公共操作端点:
/install.sh,/healthz,/readyz,/metrics - MCP传输端点:
/mcp(GET,POST,OPTIONS) - 授权要求
- 请求/响应模式
- 可再用元件
- 常见错误响应(
401,403,429,500) - MCP的JSON-RPC请求示例(
initialize,tools/list,tools/call)
先决条件
安装Fern CLI:
npm install -g fern-api生成并验证OpenAPI
make openapi-generate
make openapi-validate输出规格:
openapi/openapi.yaml
在本地运行Fern检查和文档
make fern-check
make fern-docs-dev替代直接命令:
cd fern
FERN_NO_VERSION_REDIRECTION=true fern check
FERN_NO_VERSION_REDIRECTION=true fern docs dev
FERN_NO_VERSION_REDIRECTION=true fern generate --docs --previewfern generate --docs --preview 可能需要 fern login (或 FERN_TOKEN)这取决于您的Fern帐户/工作区设置。
文档的自定义域
Fern文档配置了自定义域:
docs.incidentflow.io
对于生产出版:
make fern-docs-publish对于预览发布:
make fern-docs-generateDNS注释:
- 创建
CNAME记录docs.incidentflow.io在您的Fern仪表板/域设置中设置Fern提供的目标。
MCP模式保真度注意事项
这 /mcp 端点被实现为自定义ASGI代理路由,并支持OpenAPI无法完全编码的可流化HTTP行为(包括SSE路径)。\ OpenAPI文档有意捕获稳定的HTTP+JSON-RPC合约和代表性示例,而没有发明不存在的端点或传输行为。
CI自动化(GitHub操作)
此存储库包括一个文档工作流,位于 .github/workflows/docs.yml:
- 在pull请求上:生成OpenAPI,验证它,并运行
fern check. - 关于推送
main:执行相同的验证,然后运行fern generate --docs --preview如果FERN_TOKEN已配置。 - 手动运行(
workflow_dispatch):setpublish_production=true发布到自定义域。
发布预览所需的存储库密码:
FERN_TOKEN
VS代码MCP安装程序
在入口后部署此服务(例如, https://mcp.incidentflow.io), 该应用程序公开了一个动态安装程序端点:
curl -fsSL https://mcp.incidentflow.io/install.sh | bash该脚本自动配置VS Code工作区 .vscode/mcp.json 与:
type: "http"url: https:///mcp
首先检查安装程序(推荐)
您可以在运行安装程序之前检查它:
curl https://mcp.incidentflow.io/install.sh或者:
curl https://mcp.incidentflow.io/install.sh | less试运行
在不修改工作区的情况下预览更改:
curl https://mcp.incidentflow.io/install.sh | bash -s -- --dry-run这将打印将要写入的MCP配置。
速率限制和工具防护装置
此服务器在两层中应用面向生产的保护:
- HTTP传输级别限制(返回
429 Too Many Requests) - 主控程序
tools/call执行保护(结构化JSON-RPC/MCP错误)
运输水平限制
受保护的端点:
/mcp- 身份验证端点(如果存在)(
/authorize,/token,/register,/oauth/register)
身份解析顺序:
workspace_id + user_idclient_id- 客户端IP
计划元数据作为原始身份元数据传递(例如 auth_context["plan"] 或 X-Plan/X-Plan-Tier 标题)。核心OSS逻辑不映射或硬编码SaaS层。
默认OSS策略:
- 未经身份验证:
20 req/min按IP - 已验证:
60 req/min按本金计算
在达到传输限制时,服务器返回HTTP 429 与:
Retry-AfterX-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
工具级别限制和执行策略
对于 tools/call 请求:
- 经过身份验证的默认值:
20 calls/min - 昂贵的工具:
5 calls/min每个身份 - 经过身份验证的默认并发性:最大
2并发工具执行 - 默认超时:
30s(可选择每个工具的超控)
Bucket密钥选择是由策略驱动的(ip | principal | workspace)并与身份分开解决。
工具保护错误作为结构化MCP/JSON-RPC错误返回,并带有安全消息,例如:
Rate limit exceeded for tool invocationToo many concurrent tool invocationsTool execution timed out
昂贵工具政策
通过以下方式设置昂贵的工具:
EXPENSIVE_TOOLS=incident_graph_build,large_correlation,slack_thread_mining,github_org_searchRedis要求
速率限制和并发状态是Redis支持的跨多个应用副本工作。 在地方发展方面:
REDIS_URL=redis://:redis-dev-password@127.0.0.1:6379/0指标
暴露在 /metrics (普罗米修斯格式):
mcp_http_requests_totalmcp_http_rate_limited_totalmcp_tool_calls_totalmcp_tool_rate_limited_totalmcp_tool_timeouts_totalmcp_tool_concurrency_rejections_total
有关生产MCP可观察性设计、PromQL和警报示例,请参阅 docs/observability.md.
托管令牌自检模式(推荐)
对于SaaS部署,首选来自以下位置的托管凭据 platform-api 超过静态 INCIDENTFLOW_PAT.
在中设置这些变量 incidentflow-mcp:
PLATFORM_API_BASE_URL=http://127.0.0.1:8000
PLATFORM_API_INTROSPECT_PATH=/api/v1/tokens/introspect
PLATFORM_API_TIMEOUT_SECONDS=5在此模式下,MCP通过平台api验证传入的承载令牌,并接收 从自省响应中提取工作区/用户/范围上下文。令牌元数据,如 作为 last_used_at 在自省期间在平台api中更新。
回退行为:
- 如果
PLATFORM_API_BASE_URL未设置,MCP使用本地身份验证(INCIDENTFLOW_PAT和/或本地回购令牌)。 - 在生产环境中,必须至少配置一个身份验证源(
PLATFORM_API_BASE_URL或INCIDENTFLOW_PAT).
external_status_check 响应模式
external_status_check 支持两种输出模式:
response_mode=compact(默认):VS代码/复制副本渲染的聊天安全摘要。response_mode=full:用于深入RCA分析的原始平台作业有效载荷。
轮询行为:
- 如果
check_id提供,MCP轮询现有job_id并且不创建新作业。 - 如果
check_id如果省略,MCP将提交一个新的异步作业。
示例(紧凑型):
{
"providers": ["github"],
"wait_for_result": true,
"days_back": 30,
"response_mode": "compact"
}示例(完整):
{
"providers": ["github"],
"wait_for_result": true,
"days_back": 30,
"response_mode": "full"
}