mcpField
F
FelixYifeiWang-felix-mcp-smithery

FelixYifeiWang-felix-mcp-smithery

远程服务
github.com/FelixYifeiWang开发工具056 周前更新
代码仓库

关于 FelixYifeiWang-felix-mcp-smithery

Felix MCP (Smithery) 是部署在 Smithery 上的小型 MCP 服务,可供 Claude Desktop 等客户端使用。它通过 Streamable HTTP 提供问候、随机数、天气查询和 OpenAI 文本摘要工具。

主要功能

  1. 01按姓名生成问候
  2. 02生成随机整数
  3. 03按城市查询当前天气
  4. 04使用 OpenAI 摘要文本

适用场景

  1. 01在 MCP 客户端中添加问候工具
  2. 02生成不超过指定上限的随机数
  3. 03查询某个城市的当前天气
  4. 04配置 OpenAI API 密钥后摘要文本

MCP 相关

通过 `/mcp` 上的 Streamable HTTP 端点向 MCP 客户端提供四种工具。支持会话管理以及 POST、GET 和 DELETE 请求。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp需要授权

工具

详细介绍

Felix MCP(Smithery)

一个小巧的 Model Context Protocol 服务,提供几个实用工具,部署在 Smithery 上,已在 Claude Desktop 中测试,并已收录到 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 中(推荐)
  1. 打开 Settings → Developer → mcpServers 并添加:

    {
      "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"
          ]
        }
      }
    }
    
  2. 开始新聊天并运行:

    • “列出 felix-mcp-smithery 中的工具”
    • “使用 { "name": "Felix" } 调用 hello”
    • “用此文本调用 summarize(2 句话):…”

功能

  • 可流式传输的 HTTP MCP – 在 /mcp 上使用 Express 和 MCP SDK 的 StreamableHTTPServerTransport(POST/GET/DELETE)。
  • 支持会话 – 正确处理 Mcp-Session-Id(不会递归关闭)。
  • OpenAI 摘要生成 – 通过聊天补全生成简洁摘要(默认模型为 gpt-4o-mini)。
  • 轻松托管 – 打包为容器并部署在 Smithery 上。

安装(本地)

需要 Node 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:

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"}}'

用法(工具)

hello

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"hello","arguments":{"name":"Felix"}}}

randomNumber

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"randomNumber","arguments":{"max":10}}}

weather

{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"weather","arguments":{"city":"Boston"}}}

summarize (需要在服务端设置 OPENAI_API_KEY)

{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"summarize","arguments":{"text":"(paste long text)","maxSentences":2}}}

工作原理

  • 服务核心: 使用来自 @modelcontextprotocol/sdk 的 McpServer,并在 buildServer() 中注册工具。 传输:在 /mcp 上使用 StreamableHTTPServerTransport,处理:

    • POST /mcp — JSON-RPC 请求(以及首次 initialize)
    • GET /mcp — 服务端到客户端的通知(SSE)
    • DELETE /mcp — 结束会话
  • **CORS:**允许所有来源;公开 Mcp-Session-Id 标头(适用于托管客户端)。

  • **OpenAI 摘要生成:**通过精简的 fetch 封装调用 /v1/chat/completions,并使用简短的“简洁摘要生成器”系统提示词。


部署(Smithery)

  1. GitHub 仓库包含:

    • index.js(Express + 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: /
      
  2. 在 Smithery 中:

    • 从仓库创建服务。
    • 添加 环境变量:OPENAI_API_KEY(summarize 可选)。
    • 部署 → 确认日志显示: ✅ MCP Streamable HTTP server on 0.0.0.0:8081 (POST/GET/DELETE /mcp)

NANDA 索引

  • 前往 join39.org → Context Agents → Add

    • Agent 名称: Felix MCP (Smithery)
    • MCP 端点: https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp?api_key=YOUR_KEY&profile=YOUR_PROFILE
    • 描述: 托管在 Smithery 上的可流式传输 HTTP MCP。工具: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

作业评分标准对应项

  • ✅ **查找/构建:**自定义 MCP 服务,包含 4 个工具
  • ✅ **部署:**托管在 Smithery 上(已链接公开服务页面)
  • ✅ **在宿主端测试:**已在 Claude Desktop 中验证(包含截图/录屏)
  • ✅ **NANDA 索引:**已添加为 Context Agent(包含截图)
  • ✅ **交付物:**仓库链接 + 可用端点 + 宿主端截图

成功之处

  • 避开关闭循环的陷阱后,带会话管理的 Streamable HTTP 传输稳定可靠。
  • Smithery 让部署和身份验证密钥分发变得简单明了。
  • Claude Desktop 可通过 @smithery/cli run … 顺利连接。

AI 致谢

本项目的部分内容(工具脚手架、错误修复和文档润色)是在 AI 的协助下完成的。 最终代码、部署和测试步骤均由我实现并验证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。