About
Vancouver is a lightweight Elixir library that integrates MCP functionality into Phoenix/Bandit servers, handling initialization, request validation, and providing helpers for creating tools and prompts.
Capabilities
Overview
Vancouver is an MCP (Model Context Protocol) server library designed for the Elixir ecosystem, specifically targeting Phoenix and Bandit web frameworks. It abstracts away the repetitive boilerplate of initializing an MCP server, validating incoming requests, and wiring up tools and prompts. By handling these core responsibilities automatically, Vancouver allows developers to focus on implementing the business logic of their AI‑enabled features rather than plumbing HTTP endpoints and JSON schemas.
The server solves a common pain point for developers who want to expose custom tooling or prompt templates to large language models. Without Vancouver, a developer would need to manually parse the MCP request payload, validate it against JSON schemas, and return properly formatted responses. Vancouver provides macros ( and ) that generate the necessary boilerplate, enforce naming conventions, and expose helper functions like for quick response construction. This streamlines the process of creating new tools—such as a calculator or a code‑review helper—and prompts that can be invoked by an LLM client like Claude.
Key features include:
- Tool and Prompt registration: Declare tools and prompts as modules, then register them in the router. Vancouver automatically exposes them under a single endpoint.
- Schema validation: Each tool can define an that is automatically checked against incoming data, ensuring robust error handling.
- Simplified response helpers: Built‑in functions for sending text or structured responses reduce boilerplate and potential bugs.
- Integration with MCP clients: The server can be discovered by external clients (e.g., Claude Desktop) via a simple JSON configuration, enabling seamless tool invocation without custom client code.
Real‑world use cases abound: a DevOps team can expose an “inspect logs” tool that streams log entries to the LLM; a data science platform can offer a “run analysis” prompt that triggers pre‑built notebooks. In each scenario, Vancouver handles the protocol handshake, leaving developers to implement domain logic.
Because it is written in Elixir, Vancouver benefits from Phoenix’s high concurrency and Bandit’s lightweight request handling. The library is intentionally minimal, making it straightforward to extend or fork for streaming responses, additional MCP features, or custom authentication. While still in early development and lacking full protocol support (e.g., streaming), Vancouver provides a solid foundation for rapid MVPs that integrate AI assistants with custom tooling.
Related Servers
Netdata
Real‑time infrastructure monitoring for every metric, every second.
Awesome MCP Servers
Curated list of production-ready Model Context Protocol servers
JumpServer
Browser‑based, open‑source privileged access management
OpenTofu
Infrastructure as Code for secure, efficient cloud management
FastAPI-MCP
Expose FastAPI endpoints as MCP tools with built‑in auth
Pipedream MCP Server
Event‑driven integration platform for developers
Weekly Views
Server Health
Information
Explore More Servers
Govee MCP Server
Control Govee LEDs via Model Context Protocol
ScreenMonitorMCP v2
Real‑time screen capture and AI vision for your assistant
Web Content MCP Server
Search and extract web content in clean markdown
Agent Construct
Central hub for AI tool access via MCP
Apifox MCP Server
Retrieve and manage Apifox API data via MCP
Okta MCP Server
Seamless Okta user and group management for Claude