项目简介
EXCOM 是一个使用 Elixir 语言开发的 Model Context Protocol (MCP) 服务器实现。它旨在为大型语言模型 (LLM) 客户端提供标准化的后端服务,包括托管资源、注册工具以及处理Prompt请求。该项目目前处于早期开发阶段 (WiP)。
主要功能点
- 作为MCP服务器运行: 实现MCP协议,接收并处理来自LLM客户端的请求。
- 提供上下文数据: 允许托管和访问各种资源,为LLM提供必要的背景信息(计划功能)。
- 注册和执行工具: 使LLM能够调用外部功能和服务(计划功能,Readme提及计划支持通过HTTP流式传输)。
- 支持Prompt模板: 定义和使用Prompt模板,实现灵活的LLM交互(MCP核心功能)。
安装步骤
EXCOM 是一个 Elixir 库,可以通过 Mix 包管理器集成到您的 Elixir 项目中。
-
创建或进入您的 Elixir 项目目录。
-
编辑 'mix.exs' 文件:在项目的 'mix.exs' 文件中找到 'deps' 函数,并添加 Excom 作为依赖:
def deps do [ {:excom, "~> 版本号"} # 替换 "版本号" 为 Hex.pm 上最新的版本号 ] end您可以在 Hex.pm 查看最新版本号。
-
下载依赖:在项目目录中运行以下命令下载并编译 Excom 及其依赖项:
mix deps.get mix compile
安装完成后,您就可以在您的 Elixir 应用中配置和启动 Excom MCP服务器。
MCP服务器配置 (供MCP客户端使用)
MCP客户端需要知道如何启动和连接到EXCOM服务器。这通常通过一个JSON配置对象来指定服务器的启动命令和参数。请注意,以下是一个典型的配置结构示例,具体启动命令和参数可能需要根据EXCOM的实际实现和您的部署方式进行调整。
{ "name": "excom-server", // 服务器名称,可自定义 "command": "elixir", // 用于启动服务器的可执行文件,通常是 'elixir' "args": [ // 传递给 command 的参数列表 "-S", "mix", // 使用 mix 运行任务 "run", "--no-halt", // 运行并保持Elixir VM不退出 "-e", "Excom.start_server()" // 执行特定的Elixir代码来启动Excom服务器, // 这里的 "Excom.start_server()" 是一个假设的启动入口函数, // 请查阅Excom文档确认实际的启动方法和参数。 // 根据需要可能需要添加指定传输协议的参数,例如 "--transport", "stdio" ] // 其他可能的配置项,例如工作目录 "cwd", 环境变量 "env" 等 }
MCP客户端会使用上述配置来执行 'command' 并传递 'args' 来启动Excom进程,并通过指定的传输协议(如 Stdio)进行通信。
基本使用方法 (客户端视角)
一旦EXCOM服务器启动并运行,MCP客户端就可以通过配置中指定的传输通道(例如标准输入/输出 Stdio)与其建立连接。客户端会向服务器发送遵循JSON-RPC 2.0规范的请求,例如:
- 能力声明请求: 获取服务器支持的功能(资源、工具、Prompt)。
- 读取资源请求: 请求服务器提供特定资源的数据。
- 调用工具请求: 请求服务器执行注册的工具功能。
- 获取Prompt请求: 请求服务器渲染指定的Prompt模板。
服务器接收到请求后,会处理并在完成后返回相应的JSON-RPC响应。客户端负责解析响应并利用其中的信息或结果。由于EXCOM项目尚处于早期阶段,具体支持的功能和使用细节需要参考其最新的文档。
信息
分类
AI与计算