Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MCP server for enriching book, movie, and TV show metadata for Obsidian vaults Media Metadata MCP Server An MCP (Model Context Protocol) server that enriches book, movie, and TV show metadata for Obsidian vaults. Queries multiple sources, normalizes data, and returns Obsidian-ready frontmatter. Features - **Book Lookup**: Search by title, author, or ISBN via Open Library - **Movie Lookup**: Comprehensive movie data from TMDB including cast, directors, collections, and watch providers - **TV Sho Published capability contract available. No trust telemetry is available yet. 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
media-metadata-mcp 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
MCP server for enriching book, movie, and TV show metadata for Obsidian vaults Media Metadata MCP Server An MCP (Model Context Protocol) server that enriches book, movie, and TV show metadata for Obsidian vaults. Queries multiple sources, normalizes data, and returns Obsidian-ready frontmatter. Features - **Book Lookup**: Search by title, author, or ISBN via Open Library - **Movie Lookup**: Comprehensive movie data from TMDB including cast, directors, collections, and watch providers - **TV Sho
Public facts
6
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Cameronsjo
Artifacts
0
Benchmarks
0
Last release
1.0.0
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. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/cameronsjo/media-mcp.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
Cameronsjo
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
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 npm run build
json
{
"mcpServers": {
"media-metadata": {
"command": "node",
"args": ["/path/to/media-metadata-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your-tmdb-api-key"
}
}
}
}json
{
"mcpServers": {
"media-metadata": {
"command": "node",
"args": ["/path/to/media-metadata-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your-tmdb-api-key"
}
}
}
}bash
TMDB_API_KEY=your-key MCP_TRANSPORT=http npm start
bash
TMDB_API_KEY=your-key node dist/index.js --transport http
json
{
"title": "The Name of the Wind",
"author": "Patrick Rothfuss",
"isbn": "978-0756404741"
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
MCP server for enriching book, movie, and TV show metadata for Obsidian vaults Media Metadata MCP Server An MCP (Model Context Protocol) server that enriches book, movie, and TV show metadata for Obsidian vaults. Queries multiple sources, normalizes data, and returns Obsidian-ready frontmatter. Features - **Book Lookup**: Search by title, author, or ISBN via Open Library - **Movie Lookup**: Comprehensive movie data from TMDB including cast, directors, collections, and watch providers - **TV Sho
An MCP (Model Context Protocol) server that enriches book, movie, and TV show metadata for Obsidian vaults. Queries multiple sources, normalizes data, and returns Obsidian-ready frontmatter.
npm install
npm run build
The server is configured via environment variables. App-specific variables use the MCP_ prefix; standard API/telemetry variables use their conventional names.
| Variable | Description | Default |
|----------|-------------|---------|
| TMDB_API_KEY | TMDB API key (required for movie/TV lookups) | - |
| GOOGLE_BOOKS_API_KEY | Google Books API key (optional, for enhanced book data) | - |
| Variable | Description | Default |
|----------|-------------|---------|
| MCP_TRANSPORT | Transport type: stdio or http | stdio |
| MCP_HTTP_PORT | HTTP server port | 3000 |
| MCP_HTTP_HOST | HTTP server host | 127.0.0.1 |
| MCP_HTTP_PATH | HTTP endpoint path | /mcp |
| Variable | Description | Default |
|----------|-------------|---------|
| MCP_CACHE_ENABLED | Enable caching | true |
| MCP_CACHE_PATH | SQLite cache database path | ./cache.db |
| MCP_CACHE_TTL_BOOKS | Book cache TTL in seconds | 604800 (7 days) |
| MCP_CACHE_TTL_MOVIES | Movie cache TTL in seconds | 86400 (1 day) |
| MCP_CACHE_TTL_TV | TV cache TTL in seconds | 86400 (1 day) |
| Variable | Description | Default |
|----------|-------------|---------|
| MCP_RATE_LIMIT_RPM | Requests per minute | 30 |
| MCP_RATE_LIMIT_RETRIES | Retry attempts | 3 |
| Variable | Description | Default |
|----------|-------------|---------|
| MCP_ENABLE_GOODREADS_SCRAPING | Enable Goodreads scraping | true |
| MCP_ENABLE_COVER_DOWNLOAD | Enable cover image download | false |
| MCP_COVER_DOWNLOAD_DIR | Cover download directory | ./covers |
| Variable | Description | Default |
|----------|-------------|---------|
| MCP_LOG_LEVEL | Log level: debug, info, warn, error | info |
| Variable | Description | Default |
|----------|-------------|---------|
| OTEL_ENABLED | Enable OpenTelemetry | false |
| OTEL_EXPORTER_OTLP_ENDPOINT | OpenTelemetry endpoint URL | - |
| OTEL_SERVICE_NAME | Service name | media-metadata-mcp |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"media-metadata": {
"command": "node",
"args": ["/path/to/media-metadata-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your-tmdb-api-key"
}
}
}
}
{
"mcpServers": {
"media-metadata": {
"command": "node",
"args": ["/path/to/media-metadata-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your-tmdb-api-key"
}
}
}
}
Start the server with HTTP transport:
TMDB_API_KEY=your-key MCP_TRANSPORT=http npm start
Or:
TMDB_API_KEY=your-key node dist/index.js --transport http
Connect your MCP client to http://127.0.0.1:3000/mcp
Look up book metadata by title, author, or ISBN.
Input:
{
"title": "The Name of the Wind",
"author": "Patrick Rothfuss",
"isbn": "978-0756404741"
}
Output: Book metadata including title, authors, ISBN, genres, page count, description, cover URL, series information, and ratings.
Look up movie metadata by title and optional year.
Input:
{
"title": "Inception",
"year": 2010
}
Output: Movie metadata including title, year, runtime, genres, description, cast, director, collection info, ratings, and watch providers.
Look up TV show metadata by title.
Input:
{
"title": "Breaking Bad",
"include_seasons": true,
"include_episodes": false
}
Output: TV show metadata including title, status, genres, seasons, episodes, networks, and ratings.
Convert a lookup result to Obsidian YAML frontmatter.
Input:
{
"lookup_result": { /* result from any lookup tool */ },
"template": "default"
}
Templates:
minimal: Just title and basic infodefault: Standard Obsidian metadatafull: All available fieldsOutput:
---
title: "The Name of the Wind"
author: "Patrick Rothfuss"
series: "The Kingkiller Chronicle"
series_position: 1
genres:
- Fantasy
- Epic Fantasy
page_count: 662
rating: 4.52
cover: "https://..."
goodreads: "https://www.goodreads.com/book/show/186074"
isbn: "978-0756404741"
status: unread
date_added: 2024-12-07
---
Batch look up multiple items in a single request.
Input:
{
"items": [
{ "type": "book", "title": "Dune", "author": "Frank Herbert" },
{ "type": "movie", "title": "Blade Runner", "year": 1982 },
{ "type": "tv", "title": "The Wire" }
],
"concurrency": 3
}
User: Add metadata to my book note for "Project Hail Mary by Andy Weir"
Claude: [calls lookup_book with title="Project Hail Mary", author="Andy Weir"]
Claude: I found the book! Here's the metadata:
- Title: Project Hail Mary
- Author: Andy Weir
- ISBN: 978-0593135204
- Pages: 496
- Genres: Science Fiction, Space Opera
- Rating: 4.52/5
Would you like me to generate the frontmatter for your Obsidian note?
media-metadata-mcp/
├── src/
│ ├── index.ts # MCP server entry
│ ├── tools/
│ │ ├── index.ts
│ │ ├── lookup-book.ts
│ │ ├── lookup-movie.ts
│ │ ├── lookup-tv.ts
│ │ ├── batch-lookup.ts
│ │ └── generate-frontmatter.ts
│ ├── sources/
│ │ ├── index.ts
│ │ ├── open-library.ts
│ │ ├── google-books.ts
│ │ ├── goodreads.ts
│ │ └── tmdb.ts
│ ├── cache/
│ │ └── sqlite-cache.ts
│ ├── transport/
│ │ └── http-transport.ts
│ ├── utils/
│ │ ├── index.ts
│ │ ├── config.ts
│ │ ├── logger.ts
│ │ ├── rate-limiter.ts
│ │ ├── http-client.ts
│ │ ├── fuzzy-match.ts
│ │ ├── merge-results.ts
│ │ └── telemetry.ts
│ └── types/
│ ├── index.ts
│ ├── book.ts
│ ├── movie.ts
│ ├── tv.ts
│ └── common.ts
├── tests/
├── Dockerfile
├── package.json
├── tsconfig.json
└── README.md
| Source | Auth | Used For | |--------|------|----------| | Open Library | None | Book metadata, ISBNs, covers | | Google Books | API Key (optional) | Book descriptions, metadata enrichment | | Goodreads | None (scraping) | Ratings, series info, genres, tropes | | TMDB | API Key | Movies, TV shows, cast, watch providers |
Book lookups merge results from all available sources to provide the most complete metadata.
The server uses SQLite for caching with the following TTLs:
| Data Type | TTL | |-----------|-----| | Book metadata | 30 days | | Movie/TV metadata | 7 days | | TV episodes (active shows) | 1 day | | Search results | 1 hour |
docker build -t media-metadata-mcp .
docker run -d \
--name media-mcp \
-p 3000:3000 \
-e TMDB_API_KEY=your-key \
-v media-mcp-cache:/app/cache \
media-metadata-mcp
services:
media-mcp:
build: .
ports:
- "3000:3000"
environment:
- TMDB_API_KEY=${TMDB_API_KEY}
- GOOGLE_BOOKS_API_KEY=${GOOGLE_BOOKS_API_KEY} # optional
volumes:
- media-mcp-cache:/app/cache
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
media-mcp-cache:
The HTTP server exposes a health endpoint at /health:
curl http://localhost:3000/health
# {"status":"healthy","sessions":0,"timestamp":"..."}
# Run in development mode
npm run dev
# Run with HTTP transport
npm run dev:http
# Build
npm run build
# Run tests
npm test
This server implements MCP specification version 2025-11-25 with support for:
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
Yes
Data region
global
Protocol support
Requires: mcp, lang:typescript, streaming
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/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",
"streaming"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": true,
"inputSchemaRef": "https://github.com/cameronsjo/media-mcp#input",
"outputSchemaRef": "https://github.com/cameronsjo/media-mcp#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:11.741Z",
"sourceUpdatedAt": "2026-02-24T19:46:11.741Z",
"freshnessSeconds": 4436214
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/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-17T04:03:06.537Z"
}
},
"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": "model-context-protocol",
"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": "metadata",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "books",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "movies",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "tv-shows",
"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:model-context-protocol|supported|profile capability:obsidian|supported|profile capability:metadata|supported|profile capability:books|supported|profile capability:movies|supported|profile capability:tv-shows|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-cameronsjo-media-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:11.741Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:11.741Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/cameronsjo/media-mcp#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:11.741Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Cameronsjo",
"href": "https://github.com/cameronsjo/media-mcp#readme",
"sourceUrl": "https://github.com/cameronsjo/media-mcp#readme",
"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-cameronsjo-media-mcp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-cameronsjo-media-mcp/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 media-metadata-mcp and adjacent AI workflows.