MCP协议服务器

一个基于Elixir的Model Context Protocol (MCP)服务器实现,支持AI模型通过标准化协议与本地和远程资源安全交互。

  • by epinault
  • Elixir
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 epinault/elixir_mcp_server

使用说明

Elixir MCP服务器

使用Elixir与Bandit和Plug实现模型上下文协议(MCP)服务器的Elixir。

模型上下文协议(MCP)是一种开放协议,它使AI模型能够通过标准化的服务器实现与本地和远程资源安全地交互。 此项目是使用SSE(服务器发送事件)作为传输协议的MCP服务器的基本示例。它基于以下示例https://modelcontextprotocol.io/quickstart/server

先决条件

  • 灵丹妙药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客户端进行测试

安装 恩智浦Inspector客户端 并按照说明连接到服务器。

确保使用SSE(服务器发送事件)作为传输协议,然后您应该能够列出可用的工具并调用它们。为了ping/keepalive连接,您还可以使用 ping 工具。

添加自定义工具

要添加自定义工具,请更新 handle_initialize/2 函数包含您的工具定义并实现相应的 handle_call_tool/3 条款。