1. Conduid
  2. Developer Tools
  3. Vancouver
MCP server · Developer Tools

Vancouver

Simple MCP server library for Elixir.

Unclaimed MIT last commit a year ago devtoolsmcpmcp-server
59Fair

Scored 3 days ago · breakdown

About Vancouver

Vancouver is an MCP server published by jameslong in the Developer Tools category: simple MCP server library for Elixir.

The repository has 38 stars and 3 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/jameslong/vancouver

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Vancouver

Powered by Claude · Grounded in docs

I know everything about Vancouver. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 5 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

1 check has not been run yet.

Releases

v0.3.0v0.3.0 · 17 Jun 2025What's Changed Prompts by @jameslong in https://github.com/jameslong/vancouver/pull/13 Add PromptTest by @jameslong in https://github.com/jameslong/vancouver/pull/14 Add test helper functions and update test files by @jameslong in…
v0.2.0v0.2.0 · 12 Jun 2025What's Changed Audio/image responses by @jameslong in https://github.com/jameslong/vancouver/pull/6 Testing tools by @jameslong in https://github.com/jameslong/vancouver/pull/7 Add hex badges to README by @jameslong in…
v0.1.1v0.1.1 · 30 May 2025What's Changed Docs by @jameslong in https://github.com/jameslong/vancouver/pull/3 Add router by @jameslong in https://github.com/jameslong/vancouver/pull/4 v0.1.1 by @jameslong in https://github.com/jameslong/vancouver/pull/5 Full…

README

CI Hex.pm Hexdocs.pm Hex.pm Hex.pm

Vancouver

Vancouver makes it easy to add Model Context Protocol (MCP) functionality to your Phoenix/Bandit server. Vancouver handles initialization, request validation, and offers helper functions to simplify the creation of MCP tools and prompts.

Getting started

1. Add dependency

In mix.exs:

defp deps do
  [
    {:vancouver, "~> 0.3"}
  ]
end

2. Create your tools/prompts

You can implement tools like this:

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

And prompts like this:

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. Add config

In config.ex:

config :vancouver,
  name: "My MCP Server",
  version: "1.0.0"

4. Add your MCP route

In router.ex:

forward "/mcp", Vancouver.Router, 
  tools: [MyApp.Tools.CalculateSum],
  prompts: [MyApp.Prompts.CodeReview]

5. (Optional) Add to your MCP client

E.g. For Claude Desktop, you can modify your config Settings -> Developer -> Edit config as follows:

{
    "mcpServers": {
        "MyApp": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "http://localhost:4000/mcp"
            ]
        }
    }
}

Run your server, and restart Claude to starting using your MCP tools. 🚀

FAQ

Does Vancouver support all parts of the Model Context Protocol specification?

Not yet. Vancouver currently supports:

  • tools
  • prompts
  • sync responses (no streaming)

However, the library is simple enough that you should be able to modify it for your needs.

For more info on the protocol itself, see the MCP User Guide.

Is Vancouver stable / ready for production?

No. This library is in early development. Expect breaking changes.

Why is this library called Vancouver?

Vancouver is the natural home of MCP (Mountain, Coffee, and Phoenix).

README fetched from the repository 5 days ago. The original is authoritative.

Questions

About Vancouver

How do I install Vancouver?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Vancouver safe to use with an AI agent?

Its trust score is 59 out of 100 (fair). It passes 3 of the 5 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Vancouver still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.