关于 Vancouver
Vancouver 是用于 Elixir 的简单 MCP 服务库,可为 Phoenix 或 Bandit 服务器添加 MCP 功能。它处理初始化与请求校验,并提供创建工具和提示词的辅助函数。该库仍处于早期开发阶段,可能出现破坏性变更。
主要功能
- 01为 Phoenix 或 Bandit 服务添加 MCP 路由
- 02提供工具与提示词的定义模块
- 03自动处理初始化与请求校验
- 04暂不支持流式响应
适用场景
- 01在 Elixir Web 应用中暴露工具给 MCP 客户端
- 02为代码审查等任务提供预设提示词
MCP 相关
该项目是用于构建 MCP 服务的库,可将 Elixir 应用的工具与提示词通过 /mcp 路由提供给 Claude Desktop 等客户端。目前仅支持 tools 与 prompts。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Vancouver
Vancouver 可轻松为你的 Phoenix/Bandit 服务添加 Model Context Protocol (MCP) 功能。Vancouver 负责初始化、请求验证,并提供辅助函数,简化 MCP 工具和提示词的创建。
开始使用
1. 添加依赖
在 mix.exs 中:
defp deps do
[
{:vancouver, "~> 0.3"}
]
end
2. 创建工具/提示词
你可以这样实现工具:
defmodule MyApp.Tools.CalculateSum do
use Vancouver.Tool
def name, do: "calculate_sum"
def description, do: "Add two numbers together"
def input_schema do
%{
"type" => "object",
"properties" => %{
"a" => %{"type" => "number"},
"b" => %{"type" => "number"}
},
"required" => ["a", "b"]
}
end
def run(conn, %{"a" => a, "b" => b}) do
send_text(conn, "#{a + b}")
end
end
也可以这样实现提示词:
defmodule MyApp.Prompts.CodeReview do
use Vancouver.Prompt
def name, do: "code_review"
def description, do: "Asks the LLM to analyze code quality and suggest improvements"
def arguments do
[
%{
"name" => "code",
"description" => "The code to review",
"required" => true
}
]
end
def run(conn, %{"code" => code}) do
send_text(conn, "Please review this code: #{code}")
end
end
3. 添加配置
在 config.ex 中:
config :vancouver,
name: "My MCP Server",
version: "1.0.0"
4. 添加 MCP 路由
在 router.ex 中:
forward "/mcp", Vancouver.Router,
tools: [MyApp.Tools.CalculateSum],
prompts: [MyApp.Prompts.CodeReview]
5. (可选)添加到你的 MCP 客户端
例如,对于 Claude Desktop,你可以按如下方式修改配置:Settings -> Developer -> Edit config:
{
"mcpServers": {
"MyApp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:4000/mcp"
]
}
}
}
启动服务,然后重启 Claude,即可开始使用你的 MCP 工具。🚀
常见问题
Vancouver 支持 Model Context Protocol 规范的所有部分吗?
还不支持。Vancouver 目前支持:
- 工具
- 提示词
- 同步响应(不支持流式传输)
不过,这个库足够简单,你应该可以根据自己的需求对其进行修改。
有关协议本身的更多信息,请参阅 MCP User Guide。
Vancouver 稳定吗?可以用于生产环境吗?
不可以。这个库仍处于早期开发阶段,可能会有破坏性变更。
这个库为什么叫 Vancouver?
Vancouver 是 MCP(山脉、咖啡和 Phoenix)的天然家园。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。