Skip to main content

MCP server for reading and writing Obsidian vault documents via EVC Team Relay

Project description

EVC Team Relay - MCP Server

PyPI Docker Hub License: MIT MCP Install via Spark

Give your AI agent read/write access to your Obsidian vault.

Your agent reads your notes, creates new ones, and stays in sync — all through the Team Relay API.

Works with Claude Code, Codex CLI, OpenCode, and any MCP-compatible client.

evc-team-relay-mcp MCP server

Quick Start

1. Install

Option A — from PyPI (recommended):

No installation needed — uvx downloads and runs automatically. Skip to step 2.

Option B — from source:

git clone https://github.com/entire-vc/evc-team-relay-mcp.git
cd evc-team-relay-mcp
uv sync   # or: pip install .

2. Configure your AI tool

Add the MCP server to your tool's config with your Relay credentials.

Claude Code

Add to .mcp.json in your project root or ~/.claude/.mcp.json:

{
  "mcpServers": {
    "evc-relay": {
      "command": "uvx",
      "args": ["evc-team-relay-mcp"],
      "env": {
        "RELAY_CP_URL": "https://cp.yourdomain.com",
        "RELAY_EMAIL": "agent@yourdomain.com",
        "RELAY_PASSWORD": "your-password"
      }
    }
  }
}
Codex CLI

Add to your codex.json:

{
  "mcp_servers": {
    "evc-relay": {
      "type": "stdio",
      "command": "uvx",
      "args": ["evc-team-relay-mcp"],
      "env": {
        "RELAY_CP_URL": "https://cp.yourdomain.com",
        "RELAY_EMAIL": "agent@yourdomain.com",
        "RELAY_PASSWORD": "your-password"
      }
    }
  }
}
OpenCode

Add to opencode.json:

{
  "mcpServers": {
    "evc-relay": {
      "command": "uvx",
      "args": ["evc-team-relay-mcp"],
      "env": {
        "RELAY_CP_URL": "https://cp.yourdomain.com",
        "RELAY_EMAIL": "agent@yourdomain.com",
        "RELAY_PASSWORD": "your-password"
      }
    }
  }
}
From source (all tools)

If you installed from source instead of PyPI, replace "command": "uvx" / "args": ["evc-team-relay-mcp"] with:

"command": "uv",
"args": ["run", "--directory", "/path/to/evc-team-relay-mcp", "relay_mcp.py"]

Ready-to-copy config templates are also in config/.

3. Use it

Your AI agent now has these tools:

Tool Description
authenticate Authenticate with credentials (auto-managed)
list_shares List accessible shares (filter by kind, ownership)
list_files List files in a folder share
read_file Read a file by path from a folder share
read_document Read document by doc_id (low-level)
upsert_file Create or update a file by path
write_document Write to a document by doc_id
delete_file Delete a file from a folder share

Typical workflow: list_shares -> list_files -> read_file / upsert_file

Authentication is automatic — the server logs in and refreshes tokens internally.


Remote Deployment (HTTP Transport)

For shared or server-side deployments, run as an HTTP server:

# Direct
uv run relay_mcp.py --transport http --port 8888

# Docker (pulls from Docker Hub automatically)
RELAY_CP_URL=https://cp.yourdomain.com \
RELAY_EMAIL=agent@yourdomain.com \
RELAY_PASSWORD=your-password \
docker compose up -d

# Or pull explicitly
docker pull deadalusevc/evc-team-relay-mcp:latest

Then configure your MCP client to connect via HTTP:

{
  "mcpServers": {
    "evc-relay": {
      "type": "streamable-http",
      "url": "http://your-server:8888/mcp"
    }
  }
}

Security

The MCP server provides significant security advantages over shell-based integrations:

  • No shell execution — all operations are Python function calls via JSON-RPC, eliminating command injection risks
  • No CLI arguments — credentials and tokens are never passed as process arguments (invisible in ps output)
  • Automatic token management — the server handles login, JWT refresh, and token lifecycle internally; the agent never touches raw tokens
  • Typed inputs — all parameters are validated against JSON Schema before execution
  • Single persistent process — no per-call shell spawning, no environment leakage between invocations

Note: If you're using the OpenClaw skill (bash scripts), consider migrating to this MCP server for a more secure and maintainable integration.


How It Works

┌─────────────┐      MCP        ┌──────────────┐     REST API     ┌──────────────┐     Yjs CRDT      ┌──────────────┐
│  AI Agent   │ ◄────────────► │  MCP Server  │ ◄─────────────► │  Team Relay  │ ◄──────────────► │   Obsidian   │
│ (any tool)  │  stdio / HTTP  │ (this repo)  │    read/write   │   Server     │    real-time     │    Client    │
└─────────────┘                └──────────────┘                 └──────────────┘      sync         └──────────────┘

The MCP server wraps Team Relay's REST API into standard MCP tools. Team Relay stores documents as Yjs CRDTs and syncs them to Obsidian clients in real-time. Changes made by the agent appear in Obsidian instantly — and vice versa.


Prerequisites

  • Python 3.10+ with uv (recommended) or pip
  • A running EVC Team Relay instance (self-hosted or hosted)
  • A user account on the Relay control plane

Part of the Entire VC Toolbox

Product What it does Link
Team Relay Self-hosted collaboration server repo
Team Relay Plugin Obsidian plugin for Team Relay repo
Relay MCP MCP server for AI agents this repo
OpenClaw Skill OpenClaw agent skill (bash) repo
Local Sync Vault <-> AI dev tools sync repo
Spark MCP MCP server for AI workflow catalog repo

Community

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evc_team_relay_mcp-1.0.2.tar.gz (57.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evc_team_relay_mcp-1.0.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file evc_team_relay_mcp-1.0.2.tar.gz.

File metadata

  • Download URL: evc_team_relay_mcp-1.0.2.tar.gz
  • Upload date:
  • Size: 57.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for evc_team_relay_mcp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 537b82d13747d4b0d7b379b7011afad958377f8fa41e9d4515784a4217c318c9
MD5 402c7702edb3d307372ef8d1457fa7f0
BLAKE2b-256 8bc1b113955e4d1127dec8d39dbd18f10d17a91167b0b5bb2475f010f89aa890

See more details on using hashes here.

Provenance

The following attestation bundles were made for evc_team_relay_mcp-1.0.2.tar.gz:

Publisher: pypi-publish.yml on entire-vc/evc-team-relay-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file evc_team_relay_mcp-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for evc_team_relay_mcp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7de77fcab986c56ab878e81fdb4a44d38cd13b2d547f82eeea735aa3840c18b0
MD5 9d5b665ca909c6ce44e6dfc07fe6aca0
BLAKE2b-256 ba18943f62b218185df3327b600bf219f6a43d238a4ccb45e2911a8c258d0011

See more details on using hashes here.

Provenance

The following attestation bundles were made for evc_team_relay_mcp-1.0.2-py3-none-any.whl:

Publisher: pypi-publish.yml on entire-vc/evc-team-relay-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page