内容
# Elixir MCP Server
一个使用 Elixir、Bandit 和 Plug 实现的模型上下文协议(Model Context Protocol, MCP)服务器。
模型上下文协议(MCP)是一个开放协议,允许 AI 模型通过标准化的服务器实现安全地与本地和远程资源进行交互。这个项目是一个使用 SSE(Server-Sent Events)作为传输协议的 MCP 服务器的基本示例。它基于 https://modelcontextprotocol.io/quickstart/server 的示例。
## 先决条件
- Elixir 1.18 或更高版本
- Erlang/OTP 27 或更高版本
- 天气 API 密钥可以通过 `WEATHER_API_KEY` 环境变量设置。
默认服务使用的是 https://www.weatherapi.com/ 的免费套餐。
## 开始使用
1. 安装依赖:
```
mix deps.get
```
2. 启动服务器:
```
WEATHER_API_KEY="1234567890abcdef" mix run --no-halt
```
3. 服务器将可在以下地址访问:
- SSE 端点: http://localhost:4000/sse
- 消息端点: http://localhost:4000/message
## 可用工具
- `list_files`: 列出目录中的文件
- `echo`: 回显消息
- `get_weather`: 获取天气信息
## 使用 MCP 客户端进行测试
安装 [NXP Inspector client](https://modelcontextprotocol.io/docs/tools/inspector#inspector) 并按照说明连接到服务器。
确保使用 SSE(Server-Sent Events)作为传输协议,然后您应该能够列出可用工具并调用它们。为了保持连接活跃,您可以使用 `ping` 工具。
## 添加自定义工具
要添加自定义工具,请更新 `handle_initialize/2` 函数以包含您的工具定义,并实现相应的 `handle_call_tool/3` 子句。