MCP服务器

一个演示MCP功能的服务器,通过HTTPS传输提供Rick and Morty API查询服务。

  • by dyelland-lt
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 dyelland-lt/mcp-example

使用说明

Rick and Morty MCP服务器

一个模型上下文协议(MCP)服务器,通过工具和资源使用HTTPS传输演示MCP功能。

特性

  • ✅ 可流式HTTPS传输 -快速、高效的沟通
  • ✅ TLS安全 -使用mkcert进行加密连接的HTTPS
  • ✅ 简单设置 -只需将URL添加到Claude Desktop
  • ✅ 公共访问 -使用ngrok暴露您的本地服务器

先决条件

  • Node.js和pnpm
  • mkcert 用于本地SSL证书
  • 吸烟 用于公开您的本地服务器(可选,用于远程访问)

安装mkcert

mkcert是一个制作本地可信开发证书的简单工具。

macOS:

brew install mkcert
mkcert -install

Linux:

# Install mkcert (method varies by distribution)
# Ubuntu/Debian:
sudo apt install libnss3-tools
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-v*-linux-amd64
chmod +x mkcert
sudo mv mkcert /usr/local/bin/
mkcert -install

窗户:

choco install mkcert
mkcert -install

安装ngrok

ngrok为您的本地主机创建安全隧道。

macOS:

brew install ngrok/ngrok/ngrok

Linux/Windows: 下载自 ngrok.com/下载

设置(所有平台):

# Sign up at ngrok.com and get your authtoken
ngrok config add-authtoken <your-token>

这有什么作用

该服务器充当Claude Desktop和Rick and Morty API之间的桥梁,允许您:

  • 按姓名、身份、物种、类型或性别搜索字符
  • 按名称或剧集代码查找剧集
  • 按名称、类型或尺寸查找位置
  • 通过ID获取任何角色、剧集或地点的详细信息
  • 一次批量查询多个项目

使用mkcert生成SSL证书

cd证书 mkcert本地主机127.0.0.1::1 mv本地主机+2.pem本地主机-cert.pem mv本地主机+2-key.pem本地主机-key.pem cd。.

构建项目

pnpm构建

运行HTTPS服务器

pnpm启动


## Connecting to Claude Desktop

### Prerequisites
- Claude Desktop with Pro, Max, Team, or Enterprise plan
- Server running locally with HTTPS (using mkcert)
- ngrok for public access (optional)

### Local Testing

1. **Start the server**:
   ```bash
   pnpm start
  1. 使用MCP检查员进行本地测试:
    pnpm dev
    

使用ngrok进行远程访问

要使您的本地服务器可供Claude Desktop访问,请执行以下操作:

  1. 启动服务器:

    HOST=0.0.0.0 pnpm start
    
  2. 在单独的终端中,启动ngrok:

    ngrok http 3000
    

    或者使用便利脚本:

    pnpm start:public
    
  3. 复制ngrok HTTPS URL (例如。, https://abc123.ngrok-free.app)

  4. 添加到克劳德桌面:

    • 打开克劳德桌面
    • 首选 设置>连接器
    • 点击“添加自定义连接器”
    • 输入您的ngrok URL /mcp 路径: https://abc123.ngrok-free.app/mcp
    • 点击“添加”

    注: 请勿通过添加服务器 claude_desktop_config.json -Claude Desktop将不会连接到以这种方式配置的远程服务器。

  5. 开始使用它:Claude Desktop将立即连接!

此服务器提供什么

工具

  • 怎么翻译:查询Rick和Morty GraphQL API中的角色、剧集和位置

资源

  • 瑞克kandmorty://characters/popular:受欢迎的瑞克和莫蒂角色的精选列表
  • 瑞克kandmorty://info/api:有关Rick和Morty API功能的信息

提示

  • 性格分析:分析角色的性格和角色
  • 事件摘要:获取特定剧集的信息
  • 性格比较:比较剧中的两个角色

示例结果: /Users/yourname/projects/mcp-example

您的配置将是:

{
  "mcpServers": {
    "rick_and_morty": {
      "command": "node",
      "args": [
        "/Users/yourname/projects/mcp-example/build/stdio-server.js"
      ]
    }
  }
}

步骤3:重新启动克劳德桌面

完全退出并重新启动Claude Desktop(而不仅仅是关闭窗口)。

步骤4:验证

  1. 打开克劳德桌面
  2. 寻找🔌 右下角的图标
  3. 单击它查看您连接的MCP服务器
  4. 应列出“rick_and_morty”

用法

连接后,您可以向Claude询问有关Rick和Morty数据的问题:

# Local development
pnpm start

# For public access (binds to all interfaces)
HOST=0.0.0.0 pnpm start

# With MCP Inspector for testing
pnpm dev

# Run with ngrok for public access
pnpm start:public

HTTPS服务器将启动于 https://localhost:3000 默认情况下。

环境变量:

  • PORT -服务器端口(默认值:3000)
  • HOST -绑定地址(默认:localhost,公共访问使用0.0.0.0)

终点:

  • /mcp -Claude Desktop的MCP端点
  • /health -健康检查端点

测试服务器

连接到Claude Desktop后,您可以使用以下查询进行测试:

  • “查找所有名为Rick的活着的角色”
  • “获取ID为1的角色”
  • “给我看第一季的剧集”
  • “分析莫蒂·史密斯这个角色”
  • “比较里克和莫蒂的性格”
  • “跟我说说S01E01集”

项目结构

mcp-example/
├── src/
│   ├── http-server.ts      # HTTPS server with Express
│   ├── server.ts           # MCP server logic with tools and resources
│   └── config.json         # Server configuration
├── build/                  # Compiled JavaScript (generated)
├── certs/                  # SSL certificates (generate with mkcert)
├── start-public.sh         # Script to start server with ngrok
├── package.json            # Project dependencies and scripts
├── tsconfig.json           # TypeScript configuration
└── README.md              # This file

发展

服务器使用:

  • TypeScript 用于类型安全
  • @模型上下文协议/sdk 用于MCP协议实现
  • 可流式HTTPS传输 用于安全的基于网络的通信
  • 快速 对于HTTPS服务器
  • mkcert 用于本地SSL证书
  • 吸烟 用于公共隧道
  • graphql请求 用于查询Rick和Morty API

运作原理

  1. 服务器在HTTPS上监听安全的MCP协议消息
  2. SSL证书是使用mkcert生成的,用于本地开发
  3. 通过MCP协议处理工具调用和资源读取
  4. 查询Rick和Morty GraphQL API
  5. 根据MCP协议规范返回响应
  6. 可以使用ngrok公开暴露Claude Desktop访问权限