yamtrack-mcp
The yamtrack-mcp server allows LLMs to interact with a Yamtrack instance for comprehensive media tracking and management across multiple types (tv, movie, anime, manga, game, book, comic, boardgame) and providers (TMDB, MAL, IGDB, OpenLibrary, etc.).
Discovery & Search
Search media by title and type across external providers
Get detailed metadata for a specific media item, including TV season info
Tracking Management
List tracked media with filtering by status (Completed, In Progress, Planning, Paused, Dropped), title search, sorting, and pagination
View a dashboard (
get_home) showing in-progress and planning itemsCreate entries from an external provider by ID, or manually with a custom title
Update entries (status, score, progress, notes)
Delete entries from your tracked list
Progress & Scoring
Increment or decrement progress on a tracked item
Set score independently (0–10 scale)
Mark specific episodes as watched by season and episode number
History, Stats & Sync
View change history for any tracked media item
Get aggregated user statistics, optionally filtered by date range
Re-sync metadata from the original provider to keep info up-to-date
Account
Retrieve current authenticated user info
Authentication via static API token or username/password with auto-refresh; read-only tools (search, get details) work without authentication
Provides tools for searching and retrieving media metadata from IGDB, including details like titles, artwork, and descriptions, as well as tracking media progress and status through a Yamtrack instance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yamtrack-mcpsearch for movie Inception"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yamtrack-mcp
A standalone Model Context Protocol server (stdio transport, TypeScript) that exposes the Yamtrack REST API as tools for LLMs (Claude Desktop, OpenCode, VS Code, Hermes, etc.).
It runs on any machine and talks to a Yamtrack instance over its public REST API. No Django code required.
Requirements
Node.js 18+ (developed on v22/v26)
A reachable Yamtrack instance (e.g.
http://localhost:8000or your hosted URL)An API token or a username/password for that instance
Related MCP server: Yandex Tracker MCP Server
Install & build
npm install # install dependencies
npm run build # compile src/ -> dist/ (strict TypeScript)Run
node dist/index.js --helpAuthentication
The server authenticates to Yamtrack with a Bearer token. Precedence:
--token <token>/ envYAMTRACK_JWT— a static account API token (recommended, never expires) or a JWT.--username+--password— mints a JWT at startup and auto-refreshes it on 401 (JWTs expire after 1h).
Option | Env var | Description |
|
| API base URL. Default |
|
| Static token or JWT |
| – | Username (mint JWT at startup) |
| – | Password (mint JWT at startup) |
| – | Show usage |
Read-only tools (search_media, get_details) work without authentication.
Tools
All tools map 1:1 to the REST API documented in wiki/API.md.
Tool | REST endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enum values: media_type ∈ {tv, movie, anime, manga, game, book,
comic, boardgame, season}, status ∈ {Completed, In progress,
Planning, Paused, Dropped}, source ∈ {tmdb, mal, igdb,
openlibrary, mangaupdates, comicvine, custom}.
Client configuration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"yamtrack": {
"command": "node",
"args": ["/abs/path/to/yamtrack-mcp/dist/index.js"],
"env": { "YAMTRACK_JWT": "<token>" }
}
}
}OpenCode (opencode.json)
{
"mcp": {
"servers": {
"yamtrack": {
"type": "stdio",
"command": "node",
"args": ["/abs/path/to/yamtrack-mcp/dist/index.js"],
"env": { "YAMTRACK_JWT": "<token>" }
}
}
}
}VS Code (.vscode/mcp.json) / Hermes (~/.hermes/config.yaml)
Same command/args shape; pass the token via the YAMTRACK_JWT env var.
Development
npm run verify # typecheck (tsc) + lint/format (biome) + tests (vitest)
npm run typecheck
npm run lint # biome check .
npm run format # biome format --write .
npm run test # vitest run
npm run dev # build + runIntegration tests (tests/server.test.ts) drive every tool against an in-process
mock REST API over InMemoryTransport, covering auth (static token, JWT login,
JWT auto-refresh on 401) and request/response shapes.
Project structure
yamtrack-mcp/
├── src/
│ ├── index.ts # Entry: McpServer + StdioServerTransport, CLI args
│ ├── client.ts # YamtrackClient: REST wrapper, Bearer auth, JWT refresh
│ └── tools.ts # Tool definitions mapped to REST endpoints (zod schemas)
├── tests/ # Integration tests with a mock REST API
├── biome.json # Lint + format config
├── tsconfig*.json # TypeScript (build + typecheck)
└── vitest.config.tsLicense
Part of the Yamtrack project. See the main repository license.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/URD0TH/yamtrack-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server