Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
TypeScript MCP server for Obsidian with core tools, graph analytics, and semantic search Obsidian MCP Server $1 $1 TypeScript MCP server for Obsidian with core vault operations, graph analytics, and semantic search. Features - **Core Tools**: Read, write, search, append, delete files in your Obsidian vault - **Periodic Notes**: Access daily, weekly, monthly notes and recent changes - **Advanced Search**: JsonLogic queries for complex filtering - **Graph Tools**: Orphan detection, centrality analysis, clu Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
@connorbritain/obsidian-mcp-server is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
TypeScript MCP server for Obsidian with core tools, graph analytics, and semantic search Obsidian MCP Server $1 $1 TypeScript MCP server for Obsidian with core vault operations, graph analytics, and semantic search. Features - **Core Tools**: Read, write, search, append, delete files in your Obsidian vault - **Periodic Notes**: Access daily, weekly, monthly notes and recent changes - **Advanced Search**: JsonLogic queries for complex filtering - **Graph Tools**: Orphan detection, centrality analysis, clu
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Connorbritain
Artifacts
0
Benchmarks
0
Last release
0.2.3
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/ConnorBritain/obsidian-mcp-server.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Connorbritain
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
2 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
npm install -g @connorbritain/obsidian-mcp-server
bash
git clone https://github.com/ConnorBritain/obsidian-mcp-server.git cd obsidian-mcp-server npm install npm run build
json
[
{
"id": "work",
"apiKey": "work-api-key",
"host": "127.0.0.1",
"port": 27124,
"protocol": "https",
"vaultPath": "C:/Users/you/Obsidian/work",
"smartConnectionsPort": 29327
},
{
"id": "personal",
"apiKey": "personal-api-key",
"vaultPath": "C:/Users/you/Obsidian/personal"
}
]json
[
{
"id": "vault_one",
"apiKey": "your-api-key-for-vault-one",
"port": 27124,
"vaultPath": "C:/Users/you/Obsidian/vault_one"
},
{
"id": "vault_two",
"apiKey": "your-api-key-for-vault-two",
"port": 27125,
"vaultPath": "C:/Users/you/Obsidian/vault_two"
},
{
"id": "vault_three",
"apiKey": "your-api-key-for-vault-three",
"port": 27126,
"vaultPath": "C:/Users/you/Obsidian/vault_three"
}
]bash
curl -k -H "Authorization: Bearer YOUR_API_KEY" https://127.0.0.1:PORT/vault/
bash
# Replace PORT and API_KEY for each vault curl -k -H "Authorization: Bearer YOUR_API_KEY" https://127.0.0.1:PORT/vault/
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
TypeScript MCP server for Obsidian with core tools, graph analytics, and semantic search Obsidian MCP Server $1 $1 TypeScript MCP server for Obsidian with core vault operations, graph analytics, and semantic search. Features - **Core Tools**: Read, write, search, append, delete files in your Obsidian vault - **Periodic Notes**: Access daily, weekly, monthly notes and recent changes - **Advanced Search**: JsonLogic queries for complex filtering - **Graph Tools**: Orphan detection, centrality analysis, clu
TypeScript MCP server for Obsidian with core vault operations, graph analytics, and semantic search.
get_recent_changesnpm install -g @connorbritain/obsidian-mcp-server
git clone https://github.com/ConnorBritain/obsidian-mcp-server.git
cd obsidian-mcp-server
npm install
npm run build
Set the following environment variables:
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| OBSIDIAN_API_KEY | Yes* | - | API key from Local REST API plugin settings (used when multi-vault JSON is not supplied) |
| OBSIDIAN_HOST | No | 127.0.0.1 | Obsidian REST API host |
| OBSIDIAN_PORT | No | 27124 | Obsidian REST API port |
| OBSIDIAN_PROTOCOL | No | https | http or https |
| OBSIDIAN_VAULT_PATH | No | - | Path to vault (required for graph tools) |
| SMART_CONNECTIONS_PORT | No | - | Port for Smart Connections API |
| GRAPH_CACHE_TTL | No | 300 | Graph cache TTL in seconds |
| OBSIDIAN_VAULTS_JSON | No | - | JSON string describing one or more vaults. Overrides the single OBSIDIAN_API_KEY style config. |
| OBSIDIAN_VAULTS_FILE | No | - | Path to a JSON file describing one or more vaults (same shape as OBSIDIAN_VAULTS_JSON). |
| OBSIDIAN_DEFAULT_VAULT | No | first defined | Name/ID of the vault to use when a tool call omits vaultId. |
Multi-vault note: If neither
OBSIDIAN_VAULTS_JSONnorOBSIDIAN_VAULTS_FILEis provided, the legacy single-vault env vars (OBSIDIAN_API_KEY,OBSIDIAN_HOST, etc.) are used to create adefaultvault entry automatically.
OBSIDIAN_VAULTS_JSON[
{
"id": "work",
"apiKey": "work-api-key",
"host": "127.0.0.1",
"port": 27124,
"protocol": "https",
"vaultPath": "C:/Users/you/Obsidian/work",
"smartConnectionsPort": 29327
},
{
"id": "personal",
"apiKey": "personal-api-key",
"vaultPath": "C:/Users/you/Obsidian/personal"
}
]
Each tool in the MCP server now accepts an optional vaultId argument. When omitted, the server uses OBSIDIAN_DEFAULT_VAULT (or the first defined vault). This allows a single MCP session to read/write multiple vaults just by specifying which vault to target in the tool call.
Important: When running multiple Obsidian vaults simultaneously, each vault's Local REST API plugin must listen on a unique port. By default, all vaults use port
27124, which causes conflicts—only one vault can bind to a port at a time, and requests to other vaults will fail with authorization errors.
For each vault, open Settings → Community Plugins → Local REST API and scroll to Advanced Settings:
27124, 27125, 27126, 27127)In your obsidian-vaults.json file (or OBSIDIAN_VAULTS_JSON env var), specify the port for each vault to match what you configured in the plugin:
[
{
"id": "vault_one",
"apiKey": "your-api-key-for-vault-one",
"port": 27124,
"vaultPath": "C:/Users/you/Obsidian/vault_one"
},
{
"id": "vault_two",
"apiKey": "your-api-key-for-vault-two",
"port": 27125,
"vaultPath": "C:/Users/you/Obsidian/vault_two"
},
{
"id": "vault_three",
"apiKey": "your-api-key-for-vault-three",
"port": 27126,
"vaultPath": "C:/Users/you/Obsidian/vault_three"
}
]
After updating the JSON file, restart your MCP client (Windsurf, Claude Desktop, etc.) so it reloads the configuration with the new ports.
You can test each vault's API directly with curl:
# Replace PORT and API_KEY for each vault
curl -k -H "Authorization: Bearer YOUR_API_KEY" https://127.0.0.1:PORT/vault/
A successful response returns a JSON object with the vault's file listing. If you receive 40101 Authorization required, the API key doesn't match. If you receive 40400 Not Found, the plugin isn't fully initialized on that port—try toggling it off/on or restarting the vault.
Use npx for the simplest setup:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@connorbritain/obsidian-mcp-server"],
"env": {
"OBSIDIAN_API_KEY": "your-api-key-here",
"OBSIDIAN_VAULT_PATH": "/path/to/your/vault",
"OBSIDIAN_VAULTS_FILE": "C:/path/to/vaults.json",
"OBSIDIAN_DEFAULT_VAULT": "work"
}
}
}
}
If running from source:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/obsidian-mcp-server/dist/index.js"],
"env": {
"OBSIDIAN_API_KEY": "your-api-key-here",
"OBSIDIAN_VAULT_PATH": "/path/to/your/vault",
"OBSIDIAN_VAULTS_JSON": "[{\"id\":\"work\",\"apiKey\":\"...\",\"vaultPath\":\"/work\"}]"
}
}
}
}
| Client | Config Path |
|--------|-------------|
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Desktop (Mac/Linux) | ~/.config/claude/claude_desktop_config.json |
| Windsurf | ~/.windsurf/mcp_config.json |
| Cursor | ~/.cursor/mcp_config.json |
All tools accept an optional vaultId argument. If omitted, the server uses the default vault from your configuration. This lets you read/write multiple Obsidian vaults within the same MCP session.
| Tool | Description |
|------|-------------|
| list_vaults | List all configured vaults with their IDs, capabilities, and connection info |
| Tool | Description |
|------|-------------|
| list_files_in_vault | List all files/directories in vault root |
| list_files_in_dir | List files in a specific directory |
| get_file_contents | Read a single file |
| batch_get_file_contents | Read multiple files concatenated with headers |
| delete_file | Delete file or directory |
| Tool | Description |
|------|-------------|
| append_content | Append to file (creates if missing) |
| put_content | Overwrite file content |
| ~~patch_content~~ | ⚠️ Disabled: Insert content relative to heading/block (awaiting Obsidian REST API fix - see issue #146) |
Note: The
patch_contenttool is currently disabled due to known bugs in the Obsidian Local REST API plugin. Use the read-modify-write pattern withget_file_contents+put_contentas a reliable alternative.
| Tool | Description |
|------|-------------|
| search | Keyword search across vault |
| complex_search | JsonLogic query search (glob, regexp support) |
| pattern_search | Regex pattern extraction with context (requires vault path) |
| Tool | Description |
|------|-------------|
| get_periodic_note | Get current daily/weekly/monthly/quarterly/yearly note |
| get_recent_periodic_notes | Get recent periodic notes with optional content |
| get_recent_changes | Get recently modified files (requires Dataview) |
| Tool | Description |
|------|-------------|
| get_active_file | Get the currently active file in Obsidian |
| open_file | Open a file in Obsidian |
| list_commands | List all available Obsidian commands |
| execute_command | Execute one or more Obsidian commands |
| Tool | Description |
|------|-------------|
| get_vault_stats | Overview stats (notes, links, orphans, clusters) |
| find_orphan_notes | Notes with no incoming/outgoing links |
| get_note_connections | Incoming/outgoing links + tags for a note |
| find_path_between_notes | Shortest link path between two notes |
| get_most_connected_notes | Top notes by link count or PageRank |
| detect_note_clusters | Community detection via graph analysis |
| get_vault_structure | Folder tree structure of vault |
| Tool | Description |
|------|-------------|
| semantic_search | Conceptual search via Smart Connections |
| find_similar_notes | Find semantically similar notes
# Watch mode
npm run dev
# Type check
npm run typecheck
# Build
npm run build
MIT
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
No
Data region
global
Protocol support
Requires: mcp, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/ConnorBritain/obsidian-mcp-server#input",
"outputSchemaRef": "https://github.com/ConnorBritain/obsidian-mcp-server#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:45:03.301Z",
"sourceUpdatedAt": "2026-02-24T19:45:03.301Z",
"freshnessSeconds": 4430258
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T02:22:42.088Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "obsidian",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "model-context-protocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "llm",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "knowledge-management",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "graph-analysis",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "semantic-search",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:mcp|supported|profile capability:obsidian|supported|profile capability:model-context-protocol|supported|profile capability:ai|supported|profile capability:llm|supported|profile capability:knowledge-management|supported|profile capability:graph-analysis|supported|profile capability:semantic-search|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:03.301Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:03.301Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/ConnorBritain/obsidian-mcp-server#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:03.301Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Connorbritain",
"href": "https://github.com/ConnorBritain/obsidian-mcp-server#readme",
"sourceUrl": "https://github.com/ConnorBritain/obsidian-mcp-server#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "2 GitHub stars",
"href": "https://github.com/ConnorBritain/obsidian-mcp-server",
"sourceUrl": "https://github.com/ConnorBritain/obsidian-mcp-server",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-connorbritain-obsidian-mcp-server/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to @connorbritain/obsidian-mcp-server and adjacent AI workflows.