费利克斯·MCP(史密斯里)
一个小小的 模型上下文协议 部署在服务器上的几个实用工具 “Smithery”可以翻译为“铁匠铺”或“锻造工坊”。这个词汇结合了“Smith”(通常指铁匠或工匠)和“-ery”(表示某种场所或职业的后缀),共同表达了与铁匠工作或锻造活动相关的场所或工艺,经测试在 克劳德桌面版并被收录于 NANDA(南丁格尔护理诊断协会).
包含的工具
hello(name)– 快速问候randomNumber(max?)– 随机整数(默认值为100)weather(city)– 通过 wttr.in 查看当前天气summarize(text, maxSentences?, model?)– 由OpenAI提供的摘要 *(需要OPENAI_API_KEY)*
公共服务器页面 https://smithery.ai/server/@FelixYifeiWang/felix-mcp-smithery
MCP 端点(可流式传输的 HTTP) https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp *(在Smithery/NANDA中,认证信息通过查询参数附加) api_key 和可选的 profile在平台用户界面中进行配置;执行 不是 在这里硬编码秘密。)*
______________________________________________________________________
演示
在Claude Desktop(推荐使用)
- 打开 设置 → 开发者 → mcp服务器 并补充:
{
"mcpServers": {
"felix-mcp-smithery": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@FelixYifeiWang/felix-mcp-smithery",
"--key",
"YOUR_SMITHERY_API_KEY",
"--profile",
"YOUR_PROFILE_ID"
]
}
}
}- 开始一个新的聊天并运行:
- “列出工具列表 费利克斯-MCP-史密斯里(注:此翻译基于假设的英文原名,实际翻译可能因具体人名或背景而异,“felix-mcp-smithery”可能是一个虚构或特定语境下的名字)“ - “Call 你好 与;带有;用 { "name": "Felix" }“ - “Call 总结 关于这段文字(2句话):……”
______________________________________________________________________
特点/特性
- 可流式传输的HTTP多播控制协议(或简化为:支持流式传输的HTTP MCP) – Express + MCP SDK(软件开发工具包)
StreamableHTTPServerTransport开启;在……上/mcp(POST/GET/DELETE)(注:这通常指的是HTTP协议中的三种请求方法,分别翻译为“提交/获取/删除”,但通常在技术语境中直接使用英文缩写)。 - 会话感知的 – 正确处理
Mcp-Session-Id(不关闭递归)。 - OpenAI摘要生成 – 通过聊天完成提供简洁的总结(模型默认功能)
gpt-4o-mini)。 - 零摩擦托管 – 以容器形式打包并在Smithery上部署。
______________________________________________________________________
安装(本地)
需要 节点 18+ (在 Node 20 上测试)。
git clone https://github.com/FelixYifeiWang/felix-mcp-smithery
cd felix-mcp-smithery
npm install设置环境(仅在需要调用时需要) summarize (本地):
export OPENAI_API_KEY="sk-..."运行:
node index.js
# ✅ MCP Streamable HTTP server on 0.0.0.0:8081 (POST/GET/DELETE /mcp)本地卷曲(或局部卷曲):
curl -s -X POST "http://localhost:8081/mcp" \
-H 'Content-Type: application/json' \
-H 'Mcp-Protocol-Version: 2025-06-18' \
--data '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}'______________________________________________________________________
使用(工具)
你好
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"hello","arguments":{"name":"Felix"}}}随机数
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"randomNumber","arguments":{"max":10}}}天气
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"weather","arguments":{"city":"Boston"}}}总结 *(需要 OPENAI_API_KEY (在服务器上设置)*
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"summarize","arguments":{"text":"(paste long text)","maxSentences":2}}}______________________________________________________________________
它是如何工作的
- 服务器核心:
McpServer 来自 @modelcontextprotocol/sdk 使用已注册的工具 buildServer()。 交通: StreamableHTTPServerTransport on /mcp 处理:
- POST /mcp — JSON-RPC 请求(以及首次 initialize) - GET /mcp — 服务器到客户端的通知(SSE) - DELETE /mcp — 会议结束
- CORS:跨源资源共享(Cross-Origin Resource Sharing) 允许所有来源;暴露(或“公开”)
Mcp-Session-Id标题(适用于托管客户)。
- OpenAI总结: 薄
fetch围绕……的包装/外壳/v1/chat/completions附带一个简短的“简洁总结者”系统提示。
______________________________________________________________________
部署(Smithery,此处可能指特定系统或平台的名称,直译为“锻造厂”,但根据上下文可能需具体翻译为相关术语或保持原样)
- 包含以下内容的GitHub仓库:
- index.js (快递 + MCP)
- package.json (@modelcontextprotocol/sdk, express, cors, zod)
- Dockerfile
- smithery.yaml:
kind: server
name: felix-mcp-smithery
version: 1.0.0
runtime: container
startCommand:
type: http
transport: streamable-http
port: 8081
path: /mcp
ssePath: /mcp
health: /- 在史密斯里(Smithery):
- 从仓库中创建服务器。 - 添加 环境变量: OPENAI_API_KEY (可选,对于 summarize)。 - 部署 → 确认日志显示: ✅ MCP Streamable HTTP server on 0.0.0.0:8081 (POST/GET/DELETE /mcp)
______________________________________________________________________
NANDA指数
- 首选 join39.org → 上下文代理 → 添加
- 代理名称: Felix MCP (Smithery) - MCP 端点: https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp?api_key=YOUR_KEY&profile=YOUR_PROFILE - 描述: Streamable-HTTP MCP hosted on Smithery. Tools: hello, randomNumber, weather, summarize (OpenAI).
- 来自NANDA的测试:
initialize→tools/list→ 打电话hello。
______________________________________________________________________
项目结构
.
├─ index.js # Express + Streamable HTTP + tools
├─ package.json # sdk/express/cors/zod
├─ Dockerfile # container build for Smithery
└─ smithery.yaml # Smithery project config______________________________________________________________________
作业评分标准映射
- ✅ 表示“正确”或“勾选”。 查找/构建: 带有4种工具的定制MCP服务器
- ✅ 部署: 托管在Smithery上(已附上公共服务器页面链接)
- ✅ 在主机上进行测试: 在Claude桌面版中已验证(附有截图/录屏)
- ✅(勾选标记,表示正确、确认或完成) NANDA指数: 作为上下文代理添加(附截图)
- ✅ 可交付成果: 仓库链接 + 可用的终端节点 + 主机截图
______________________________________________________________________
什么奏效了
- 一旦避免了闭环陷阱,带有会话管理的可流式HTTP传输就是稳定的。
- Smithery 使部署和授权密钥分发变得简单直接。
- Claude Desktop 通过(某种方式)干净利落地连接
@smithery/cli run …。
______________________________________________________________________
人工智能致谢
该项目的部分内容(工具脚手架搭建、错误修复和文档润色)是在AI辅助下完成的。 最终的代码、部署和测试步骤均由我完成并验证。
