claude-code — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-code (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
<a href="https://glama.ai/mcp/servers/@entire-vc/evc-team-relay-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@entire-vc/evc-team-relay-mcp/badge" alt="evc-team-relay-mcp MCP server" /> </a>
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 .Add the MCP server to your tool's config. Choose one authentication method:
Agent key (recommended) — create a key in the Obsidian plugin → Team Relay settings → Agent Keys. Supports read and write: list_files, read_file, tr_search, and upsert_file all work with a single key. Quickstart →
Email + password — use a dedicated agent account on your Relay instance.
<details> <summary><b>Claude Code — agent key</b></summary>
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_AGENT_KEY": "tr_agent_your_key_here"
}
}
}
}</details>
<details> <summary><b>Claude Code — email/password</b></summary>
{
"mcpServers": {
"evc-relay": {
"command": "uvx",
"args": ["evc-team-relay-mcp"],
"env": {
"RELAY_CP_URL": "https://cp.yourdomain.com",
"RELAY_EMAIL": "[email protected]",
"RELAY_PASSWORD": "your-password"
}
}
}
}</details>
<details> <summary><b>Codex CLI</b></summary>
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_AGENT_KEY": "tr_agent_your_key_here"
}
}
}
}</details>
<details> <summary><b>OpenCode</b></summary>
Add to opencode.json:
{
"mcpServers": {
"evc-relay": {
"command": "uvx",
"args": ["evc-team-relay-mcp"],
"env": {
"RELAY_CP_URL": "https://cp.yourdomain.com",
"RELAY_AGENT_KEY": "tr_agent_your_key_here"
}
}
}
}</details>
<details> <summary><b>From source (all tools)</b></summary>
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"]</details>
Environment variables:
| Variable | Required | Description |
|---|---|---|
RELAY_CP_URL | Yes | Control plane base URL |
RELAY_AGENT_KEY | One of | Agent key from plugin settings — read + write (recommended) |
RELAY_EMAIL | One of | Account email (email/password mode) |
RELAY_PASSWORD | One of | Account password (email/password mode) |
Ready-to-copy config templates are also in config/.
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.
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 \
[email protected] \
RELAY_PASSWORD=your-password \
docker compose up -d
# Or pull explicitly
docker pull deadalusevc/evc-team-relay-mcp:latestThen configure your MCP client to connect via HTTP:
{
"mcpServers": {
"evc-relay": {
"type": "streamable-http",
"url": "http://your-server:8888/mcp"
}
}
}The MCP server provides significant security advantages over shell-based integrations:
ps output)Note: If you're using the OpenClaw skill (bash scripts), consider migrating to this MCP server for a more secure and maintainable integration.
┌─────────────┐ 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.
| 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 |
[//]: # (mcp-name: io.github.entire-vc/evc-team-relay-mcp)
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.