MCP服务工具

Vancouver是一个简化在Phoenix/Bandit服务器中添加Model Context Protocol (MCP)功能的工具,提供初始化、请求验证和辅助函数来简化MCP工具和提示的创建。

  • by jameslong
  • Elixir
  • 本地部署
  • 38 星标
  • 更新于
在 GitHub 查看 jameslong/vancouver

使用说明

温哥华

温哥华很容易添加 模型上下文协议(MCP) Phoenix/Bandit服务器的功能。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工具。 🚀

常见问题解答

温哥华是否支持模型上下文协议规范的所有部分?

还没有。温哥华目前支持:

  • 工具
  • 鼓励
  • 同步响应(无流媒体)

然而,该库非常简单,您应该能够根据需要对其进行修改。

有关协议本身的更多信息,请参阅 MCP用户指南.

温哥华是否稳定/准备投产?

没有。这个图书馆还处于早期开发阶段。期待突破性的变化。

为什么这个图书馆叫温哥华?

温哥华是MCP(山、咖啡和凤凰城)的天然家园。