Concierge AI
通过按工作流逐步展示工具并约束调用顺序,帮助 Python 开发者构建更可靠的 MCP 服务。
- Star 数
- ★ 528
- 最近更新
- 4 个月前
- License
- NOASSERTION
- 主语言
- Python
- FA 评分
- 45/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 电商后端开发者想让购物助手先搜索商品、再管理购物车,最后才能结账。
- 不适合
- 需要非 Python 运行时的团队
- 不使用 MCP 的应用开发者
这个 Agent 能做什么,适合哪些场景?
Concierge 是一个面向 Python 3.9+ 的 SDK,用于包装现有 MCP 服务或搭建新的 MCP 服务。它会根据当前工作流步骤动态调整 `tools/list` 返回的工具,并可通过 `stages` 和 `transitions` 限定可见工具及步骤流转。应用可使用会话级共享状态,也可启用语义搜索,将大量工具收敛为搜索和调用两个元工具。服务可通过 stdio、streamable HTTP 或 SSE 运行;仓库还提供 `concierge init` 项目脚手架命令。README 未说明模型提供商、费用或托管服务。
安装 concierge-sdk 后,开发者可用 Concierge(FastMCP("my-server")) 包装现有 FastMCP 服务,原有 @app.tool()、资源和提示词保持可用。开发者可把工具名放进 app.stages,用 app.transitions 定义允许的步骤跳转;服务只向客户端列出当前步骤相关工具,并在协议层执行工具顺序约束。工具可通过 app.set_state() 和 app.get_state() 读写会话状态。大型工具集可配置 Config 与 ProviderType.SEARCH,让客户端通过 search_tools 查找并由 call_tool 执行工具。使用 app.run() 以 stdio 启动,或创建 app.streamable_http_app() 部署 HTTP 服务;README 也列出 SSE 传输。
- 电商后端开发者想让购物助手先搜索商品、再管理购物车,最后才能结账。
- 维护现有 FastMCP 服务的团队想逐步展示工具,同时保留现有工具、资源和提示词。
- 拥有数百个 API 工具的开发者想用语义搜索减少客户端一次看到的工具数量。
- 需要在分布式副本间保存会话工作流数据的服务开发者可评估其会话级状态功能。
- 面向 CLI 客户端或 Web 部署的 Python 团队需要通过 stdio 或 HTTP 提供 MCP 服务。
如何安装或部署这个 Agent?
需要 Python 3.9+。README 推荐使用 uv,也支持 pip;未列出 API 密钥要求。
pip install concierge-sdk新建脚手架项目并启动:
concierge init my-store
cd my-store
python main.py如何使用这个 Agent?
包装现有 FastMCP 服务时,README 给出的最小示例为:
from mcp.server.fastmcp import FastMCP
from concierge import Concierge
app = Concierge(FastMCP("my-server"))为工作流配置工具分组和允许的跳转:
app.stages = {
"browse": ["search_products", "view_product"],
"cart": ["add_to_cart", "remove_from_cart", "view_cart"],
"checkout": ["apply_coupon", "complete_purchase"],
}
app.transitions = {
"browse": ["cart"],
"cart": ["browse", "checkout"],
"checkout": [],
}使用默认 stdio 传输启动:
app.run()Web 部署可创建 streamable HTTP 应用:
http_app = app.streamable_http_app()这个 Agent 有哪些优点和局限?
- 可包装现有 FastMCP 服务,README 表示现有工具装饰器、资源和提示词无需更改。
stages与transitions在 MCP 协议层控制工具可见性和调用顺序。- 会话级状态用于步骤间传递数据,README 声称可跨分布式副本使用。
- 大型 API 可通过语义搜索收敛为
search_tools和call_tool两个元工具。 - 支持 stdio、streamable HTTP 和 SSE 传输,并提供
concierge init脚手架。
- 要求 Python 3.9+,无法直接用于其他语言运行时。
- 需要理解并维护工具分组与步骤跳转配置,工作流不能只靠默认包装示例表达。
- README 未说明语义搜索的具体提供商配置、费用或其运行依赖。
- README 未给出部署所需的完整 HTTP/SSE 服务器配置或生产运行操作说明。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Concierge AI 当前 | 45 · 缺口较多 | 代码库 / SDK | ★ 528 | 4 个月前 | Python | — |
| Vibe Check MCP | 81 · 表现良好 | MCP 服务器免费 + 模型费 | ★ 501 | 1 个月前 | TypeScript | Claude.ai · OpenAI API · Claude API |
| mcp-agent | 53 · 缺口较多 | 开发框架免费 + 模型费 | ★ 8.6k | 8 个月前 | Python | Claude.ai · OpenAI API · Claude API |
| MCP Memory Service | 68 · 存在缺口 | MCP 服务器免费 | ★ 2k | 今天 | Python | ChatGPT · Codex · Claude Code · Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
阶段与转换可以限制当前可见和可调用的工具,支持一定程度的最小权限(2);但购买示例中的 checkout 没有确认步骤(user_confirmation 0),也未展示副作用恢复机制(rollback 0)。文档称状态按会话隔离,却没有充分说明持久化、访问控制或敏感数据处理(data_flow_transparency、sensitive_data_handling 各1)。依赖只有宽松下限版本,虽有 CodeQL 工作流,但没有依赖审计或锁定证据(dependency_security 1)。工具可执行购买等外部操作,但缺少副作用保护细节(external_effects 1)。发布者身份未验证且仓库材料未明确维护负责人,来源归属证据有限(source_attribution 1)。
README 要求 Python 3.9+,项目配置要求 3.10+,且“确定性结果”声明未由所给材料支持,因此自洽性仅部分成立(self_consistency 1)。配置列出核心与可选依赖,但没有锁文件、兼容矩阵或可用性说明(dependency_availability 1)。所给材料未展示错误消息或错误处理约定(failure_messages 0)。
文档面向构建 MCP 服务器的开发者,覆盖电商工作流、大型工具集及 CLI、HTTP、SSE 等场景(audience_and_scenarios 2)。阶段、转换、状态和语义搜索边界有描述,且说明功能可选(capability_boundaries 2);适用触发情境如工具数量较多时启用语义搜索也有提示(trigger_precision 2)。Python 版本、安装方式、传输方式及分布式状态等环境信息有所说明,但部署细节有限(environment_fit 2)。
README 有分节指南、特性表和文档入口,信息组织清楚(information_architecture 2)。提供 pip 安装、CLI 初始化及包装现有 MCP 服务的步骤(install_notes 2);项目名、包名和 CLI 名称在材料中基本稳定(naming_stability 2)。包含代码示例和文档、社区入口,但未见 FAQ(examples_and_faq 2)。虽说明若干工作流机制,但没有系统列出限制(known_limitations 1)。README 称 Apache 2.0,LICENSE 实际写明 Sustainable Use License,并对 .ee 文件另设限制,授权信息相互冲突(license 1)。配置有版本号,工作流描述自动更新未发布变更日志,但未提供当前变更记录文件(versioning_changelog 1)。有社区与 issue 入口,但未明确维护责任人;发布者身份也未知(maintenance_responsibility 1)。
分步工具披露、状态共享和代码示例可直接帮助开发者搭建 MCP 工作流(output_usability 2);减少无关工具并按阶段控制流程具有明确的潜在增益(marginal_value 2)。基础使用路径短且功能可选,但额外依赖及生产部署收益缺乏材料量化(cost_benefit 2)。
核心功能有 README 示例和部分状态、组件测试对应,但主要产品声明仍来自 README,缺少独立证据支持(claim_traceability 1)。README、项目配置、测试与工作流之间只有有限交叉印证(cross_source_corroboration 1)。材料能区分示例和功能描述,但“保证确定性”等声明未明确标为未经验证的主张(fact_inference_separation 2)。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- README 与 pyproject.toml 对最低 Python 版本的要求不一致;README 与 LICENSE 的授权说明也不一致,使用前应核实适用授权。
- 示例展示了购买等外部副作用,但没有确认或回滚流程;不要仅凭阶段控制推断其具备交易安全保护。
常见问题
使用 Concierge 是否需要模型 API 密钥?
能否继续使用现有 FastMCP 工具?
Concierge(FastMCP("my-server")) 包装,并称现有 @app.tool() 装饰器、资源和提示词保持可用。如何限制工具调用顺序?
app.stages 中按步骤列出工具,并在 app.transitions 中定义允许的步骤跳转;README 称 Concierge 在协议层执行这些限制。可以部署为 Web 服务吗?
app.streamable_http_app(),并列出 stdio、streamable HTTP 和 SSE 传输;更完整的部署配置未在所给材料中说明。