@missionsquad/mcp msq
导弹中队平台API的MCP服务器接口(https://missionsquad.ai).
此服务器通过FastMCP工具为模型、代理、提供者、向量存储、文件和核心实用程序公开MissionSuad帐户范围的操作。
特性
- FastMCP stdio服务器(
mcp-msq) - MissionSquad API通过隐藏工具arg提供关键支持(
apiKey)或环境回退(MSQ_API_KEY) - 通过隐藏工具arg覆盖MissionSquard基本URL(
baseUrl)或环境回退(MSQ_BASE_URL) - 严格的TypeScript和Zod验证工具输入
- 多部分文件上传支持(
POST /v1/files) - 有界二进制文件内容检索(
GET /v1/files/:id/content)带有截断元数据 - 仅适用于已安装/启用的服务器的紧凑型MCP服务器发现输出
- 构建/测试CI和npm发布工作流
经验证的API覆盖范围
实施自 missionsquad-docs/api/index.md 以及以下参考页面:
chat-completions.mdembeddings.mdproviders.mdmodels.mdagents.mdcore-utilities.mdcollections.mdvector-stores.mdfiles.mdconvenience.mdendpoint-index.md
当前的实现有意排除Webhooks端点,因为引用只列出了没有请求/响应契约的路由。
需求
- Node.js
>=20 - 纱线
安装
yarn install
yarn build
yarn start安装/发布后以CLI运行:
mcp-msq配置
复制 .env.example 到 .env.
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MSQ_API_KEY | No | unset | MissionSquad API密钥隐藏时回退 apiKey 未通过 |
MSQ_BASE_URL | 没有 | https://agents.missionsquad.ai/v1 | v1端点的基本URL |
MSQ_HTTP_TIMEOUT_MS | 没有 | 30000 | 请求超时(毫秒) |
MSQ_DEFAULT_FILE_CONTENT_MAX_BYTES | 没有 | 1048576 | 返回的默认最大字节数 msq_get_file_content |
隐藏的论点
以下内容有意不在工具架构中,应作为隐藏的额外参数传递:
apiKey:用于请求身份验证的MissionSquad API密钥baseUrl:可选的基URL覆盖
每个请求的解决顺序:
- 隐藏的额外参数
- 环境回退
如果没有可用的API键,该工具将返回一个用户设置错误。
刀具表面
核心OpenAI兼容
msq_list_modelsmsq_get_model_mapmsq_chat_completionsmsq_embeddings
提供商
msq_list_providersmsq_add_providermsq_delete_provider
模型
msq_discover_provider_modelsmsq_add_modelmsq_delete_model
代理
msq_list_agentsmsq_add_agentmsq_delete_agent
核心公用设施
msq_generate_promptmsq_list_workflowsmsq_get_workflowmsq_create_workflowmsq_update_workflowmsq_run_workflowmsq_get_workflow_run_statusmsq_get_workflow_resultmsq_get_core_configmsq_get_core_config_summarymsq_scrape_urlmsq_list_toolsmsq_list_tool_functionsmsq_list_serversmsq_list_server_tools
核心种质
msq_list_core_collectionsmsq_search_core_collectionmsq_get_core_collection_diagnosticsmsq_recover_core_collection
矢量存储
msq_list_vector_storesmsq_create_vector_storemsq_get_vector_storemsq_delete_vector_storemsq_list_vector_store_filesmsq_add_vector_store_filemsq_get_vector_store_filemsq_cancel_vector_store_session
文件
msq_list_filesmsq_upload_filemsq_get_filemsq_delete_filemsq_get_file_content
便利
msq_list_user_collectionsmsq_get_vector_store_file_details
PTC友好输出说明
最初的MissionSquad工具仍然可用,其原始API对齐的输出形状如下:
msq_get_core_configmsq_list_tools
对于程序化工具调用和其他迭代密集型用户,请使用紧凑型工具:
msq_get_core_config_summary
返回一个简洁的摘要,其中包含:
models:模型记录数组agents:代理摘要数组squadsmissionsembeddingModelsembeddedCollectionsvoicescounts
此工具用于迭代和发现,而不是用于检索完整的原始配置有效负载。
msq_list_tool_functions
返回一个简洁的摘要,其中包含:
tools:工具功能的平面阵列serverName,name,以及descriptionserverNamescounts
此工具用于发现和代理/工具选择工作流。
msq_list_servers
返回发现工作流的紧凑服务器列表:
servers:仅包含以下内容的记录数组name,displayName,transportType,以及description
此工具筛选出未安装或未启用的服务器。
msq_list_server_tools
返回单个MCP服务器的原始工具清单:
- 输入:
serverName - 输出:MissionSquard仅为该服务器返回的相同工具列表结构
使用此后 msq_list_servers 当您需要特定服务器的详细工具模式而不加载完整的全局清单时。
工作流生命周期
工作流管理使用持久化的工作流配置和工作流运行端点,而不是弃用的遗留SSE工作流路由。
支持的工作流操作:
- 使用以下命令创建工作流配置
msq_create_workflow - 使用以下命令更新工作流配置
msq_update_workflow - 列出工作流配置
msq_list_workflows - 使用以下命令获取单个工作流配置
msq_get_workflow - 使用启动工作流运行
msq_run_workflow - 检查助手/主状态
msq_get_workflow_run_status - 使用以下命令获取最终主代理结果
msq_get_workflow_result
msq_run_workflow 接受:
workflowId(必填)dataPayload(仅适用于此运行的可选JSON字符串覆盖)
当 dataPayload 提供给 msq_run_workflow,它会覆盖该执行的已保存工作流配置负载,而不会修改工作流配置本身。
msq_get_workflow_run_status 返回没有辅助内容的辅助成功/失败状态。对于排队或正在运行的工作流运行,它会在MissionSquard工作流SSE流上等待,并在运行达到终端状态后返回。
msq_get_workflow_result 仅返回最终的主代理响应,如果运行仍在进行中或未成功完成,则将失败。
文件上传和下载说明
msq_upload_file 接受:
filePath(必填)purpose(必填)relativePath(可选)collectionName(可选)filename(可选覆盖)
msq_get_file_content 返回:
contentTypecontentLengthbytesReadtruncatedbase64
如果响应内容超过 maxBytes (或 MSQ_DEFAULT_FILE_CONTENT_MAX_BYTES),有效载荷被安全截断,并通过以下方式报告 truncated: true.
响应格式
所有工具处理程序都返回确定性JSON文本字符串。如果需要结构化访问,则在客户端解析文本内容。
当使用紧凑的摘要工具时,此README中记录的MCP输出契约是工具调用者的权威接口。
用法示例
带有隐藏API密钥的JSON-RPC工具/调用
{
"method": "tools/call",
"params": {
"name": "msq_list_models",
"arguments": {
"apiKey": "msq-..."
}
}
}JSON-RPC工具/带body参数的调用
{
"method": "tools/call",
"params": {
"name": "msq_chat_completions",
"arguments": {
"model": "my-gpt4",
"messages": [
{ "role": "user", "content": "Hello" }
],
"apiKey": "msq-..."
}
}
}FastMCP风格的客户端调用
await client.callTool('msq_embeddings', {
model: 'nomic-embed-text-v1.5',
input: ['First sentence', 'Second sentence'],
apiKey: 'msq-...',
})工作流示例
创建工作流:
await client.callTool('msq_create_workflow', {
name: 'Research Workflow',
mainAgentId: 'agent_main_123',
mainPrompt: 'Summarize findings from and ',
dataPayload: '{"sourceA":"https://a.example","sourceB":"https://b.example"}',
concurrency: 2,
delimiter: '|#|',
apiKey: 'msq-...',
})启动工作流运行:
await client.callTool('msq_run_workflow', {
workflowId: 'wf_123',
apiKey: 'msq-...',
})获取工作流状态:
await client.callTool('msq_get_workflow_run_status', {
runId: 'run_abc',
apiKey: 'msq-...',
})获取最终结果:
await client.callTool('msq_get_workflow_result', {
runId: 'run_abc',
apiKey: 'msq-...',
})发展
脚本:
yarn buildyarn startyarn devyarn inspectyarn testyarn test:coverage
CI/CD
.github/workflows/build.yaml:在PR打开/同步上构建+测试.github/workflows/publish.yaml:构建+测试+发布main推送(仅忽略标记更改)
许可证
麻省理工学院
