Get started with media-metadata-mcp -- what it is, how to set it up, and how to use it
Guide the user through getting started with media-metadata-mcp.
An MCP server that enriches book, movie, and TV show metadata for Obsidian vaults. It queries Open Library, Google Books, Goodreads, and TMDB, merges and normalizes the data, and returns Obsidian-ready YAML frontmatter. Supports both stdio and Streamable HTTP transports.
Check that the user has the following installed/configured:
node --version)Walk the user through initial setup:
Install dependencies:
npm install
Build the TypeScript:
npm run build
Configure the MCP server in Claude Code or Claude Desktop. Add to your MCP config:
{
"mcpServers": {
"media-metadata": {
"command": "node",
"args": ["/Users/cameron/Projects/media-mcp/dist/index.js"],
"env": {
"TMDB_API_KEY": "your-tmdb-api-key"
}
}
}
}
Book lookups work without any API keys (Open Library + Goodreads scraping). Movie/TV lookups require TMDB_API_KEY.
Guide the user through their first interaction with the product:
Start the server in HTTP mode for quick testing:
TMDB_API_KEY=your-key npm run dev:http
The server starts at http://127.0.0.1:3000/mcp.
Or connect via Claude Code with the MCP config above and ask:
"Look up the book Project Hail Mary by Andy Weir"
Claude will call lookup_book and return metadata including title, author, ISBN, genres, page count, ratings, and cover URL.
Follow up with:
"Generate Obsidian frontmatter for that"
Claude will call generate_frontmatter and return ready-to-paste YAML.
Point the user to the most important files for understanding the project:
src/index.ts -- MCP server entry point, transport selectionsrc/tools/ -- Tool implementations: lookup-book.ts, lookup-movie.ts, lookup-tv.ts, generate-frontmatter.ts, batch-lookup.tssrc/sources/ -- Data source clients: open-library.ts, google-books.ts, goodreads.ts, tmdb.tssrc/utils/config.ts -- Environment variable configurationsrc/cache/sqlite-cache.ts -- SQLite caching layerpackage.json -- Scripts, dependencies, engine requirementsDockerfile -- Container build for HTTP transport deploymentnpm run devnpm run dev:httpnpm run buildnpm testnpm run lintnpm run typecheckdocker build -t media-metadata-mcp . && docker run -e TMDB_API_KEY=your-key -p 3000:3000 media-metadata-mcp