bangumi-mcp-ts
Registry code: ac46e5301a9b6b4a
Provides programmatic access to the Bangumi anime and media tracking platform's API.
from a public catalogue that lists it, not from the operator
- endpoint
- https://bgm.api.tski.uk/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is bangumi-mcp-ts live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is bangumi-mcp-ts free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does bangumi-mcp-ts have?
- 13 tools: get_collections, get_image, manage_index, get_user_collections, get_person, update_collection, get_subject, search, ….
- Is bangumi-mcp-ts safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.7%· all time 99.7%
last good check
of 13 tools
- degraded → live
- live → degraded· fetch failed
- degraded → live
- unknown → live
- used for
- search anime on bangumi
- get anime broadcast calendar
- get a character or person
- update a user collection
- takes → gives
- text → data
- tools
- 11 reads2 changes data
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_calendar reads open 16h ago
Get Bangumi's weekly broadcast schedule.
{ "type": "object", "required": [], "properties": {}, "additionalProperties": false }arguments 6 linesget_collections reads unknown 5h ago
Get Bangumi person/character collection lists or individual collection details. Use target_type=person|character with username. Pass person_id or character_id for individual lookup.
{ "type": "object", "required": [ "target_type", "username" ], "properties": { "limit": { "type": "integer", "default": 30, "maximum": 50, "minimum": 1, "description": "Limit" }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Offset" }, "username": { "type": "string", "description": "Username" }, "person_id": { "type": "integer", "minimum": 1, "description": "Person ID for individual lookup" }, "target_type": { "enum": [ "person", "character" ], "type": "string", "description": "Collection target" }, "character_id": { "type": "integer", "minimum": 1, "description": "Character ID for individual lookup" } }, "additionalProperties": false }arguments 45 linesget_image reads unknown 5h ago
Get image URL for subject/person/character/user. Returns the redirect location URL for the requested image type. target_type=subject|person|character requires target_id; target_type=user requires username.
{ "type": "object", "required": [ "target_type" ], "properties": { "username": { "type": "string", "description": "Username (for user avatar)" }, "target_id": { "type": "integer", "minimum": 1, "description": "Subject/Person/Character ID" }, "image_type": { "enum": [ "small", "grid", "large", "medium", "common" ], "type": "string", "description": "Image type" }, "target_type": { "enum": [ "subject", "person", "character", "user" ], "type": "string", "description": "Image target" } }, "additionalProperties": false }arguments 39 linesmanage_index changes data unknown never probed
Create, get, update, list_subjects, add_subject, update_subject, remove_subject, collect, and uncollect Bangumi indices. This tool is hidden unless BANGUMI_ENABLE_INDEX_TOOLS is enabled.
{ "type": "object", "required": [ "action" ], "properties": { "limit": { "type": "integer", "default": 30, "maximum": 50, "minimum": 1, "description": "Limit" }, "title": { "type": "string", "description": "Title" }, "action": { "enum": [ "create", "get", "update", "list_subjects", "add_subject", "update_subject", "remove_subject", "collect", "uncollect" ], "type": "string", "description": "Action" }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Offset" }, "comment": { "type": "string", "description": "Comment" }, "index_id": { "type": "integer", "minimum": 1, "description": "Index ID" }, "subject_id": { "type": "integer", "minimum": 1, "description": "Subject ID" }, "description": { "type": "string", "description": "Description" }, "subject_type": { "enum": [ 1, 2, 3, 4, 6 ], "type": "integer", "description": "Subject type" } }, "additionalProperties": false }arguments 70 linesget_user_collections reads unknown 16h ago
Get Bangumi user collections with pagination and filters. page_size is a sliding range of 20-50, or 'all' for every record.
{ "type": "object", "required": [], "properties": { "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Collection offset" }, "username": { "type": "string", "description": "Username" }, "page_size": { "oneOf": [ { "enum": [ "all" ], "type": "string", "description": "Return all records" }, { "type": "integer", "default": 20, "maximum": 50, "minimum": 20, "description": "Collection page size" } ], "description": "Collection page size: 20-50 sliding range, or 'all' to return every record." }, "subject_id": { "type": "integer", "minimum": 1, "description": "Single subject ID for detailed collection lookup" }, "subject_type": { "enum": [ 1, 2, 3, 4, 6 ], "type": "integer", "description": "Subject type filter" }, "collection_type": { "enum": [ 1, 2, 3, 4, 5 ], "type": "integer", "description": "Collection type filter" } }, "additionalProperties": false }arguments 63 linesget_person reads unknown 5h ago
Get Bangumi person details plus works and roles. The returned payload keeps profile, subjects, and characters separate and can mark each section with _error.
{ "type": "object", "required": [ "person_id" ], "properties": { "person_id": { "type": "integer", "minimum": 1, "description": "Person ID" } }, "additionalProperties": false }arguments 14 linesupdate_collection changes data unknown never probed
Update Bangumi collections. target_type values: subject (subject_status/progress/rating/comment), person (favorite), character (favorite), episode (episode_status for single), episode_batch (subject_id+episode_ids+episode_status for batch).
{ "type": "object", "required": [ "target_type" ], "properties": { "rating": { "type": "integer", "maximum": 10, "minimum": 0, "description": "Rating" }, "comment": { "type": "string", "description": "Comment" }, "favorite": { "type": "boolean", "description": "Favorite" }, "progress": { "type": "object", "required": [], "properties": { "volumes_read": { "type": "integer", "minimum": 0, "description": "Volumes read" }, "episodes_watched": { "type": "integer", "minimum": 0, "description": "Episodes watched" } }, "additionalProperties": false }, "person_id": { "type": "integer", "minimum": 1, "description": "Person ID" }, "episode_id": { "type": "integer", "minimum": 1, "description": "Episode ID" }, "subject_id": { "type": "integer", "minimum": 1, "description": "Subject ID" }, "episode_ids": { "type": "array", "items": { "type": "integer", "minimum": 1, "description": "Episode ID" }, "description": "Episode ID list" }, "target_type": { "enum": [ "subject", "person", "character", "episode", "episode_batch" ], "type": "string", "description": "Target type" }, "character_id": { "type": "integer", "minimum": 1, "description": "Character ID" }, "episode_status": { "enum": [ 1, 2, 3 ], "type": "integer", "description": "Episode status" }, "subject_status": { "enum": [ "wish", "watching", "done", "on_hold", "dropped" ], "type": "string", "description": "Subject status" } }, "additionalProperties": false }arguments 100 linesget_subject reads unknown 3h ago
Get Bangumi subject details. Use include to fetch extra data in the same call: - "persons" (staff/cast) - "characters" - "relations" (sequels, prequels, and related entries) - "episodes" Example: include=["persons","episodes"] fetches both staff/cast and episode list. Partial include failures are returned as _error fields instead of failing the whole call.
{ "type": "object", "required": [ "subject_id" ], "properties": { "include": { "type": "array", "items": { "enum": [ "persons", "characters", "relations", "episodes" ], "type": "string", "description": "Include" }, "description": "Include related data" }, "subject_id": { "type": "integer", "minimum": 1, "description": "Subject ID" }, "episode_type": { "enum": [ 0, 1, 2, 3, 4, 5, 6 ], "type": "integer", "description": "Episode type filter" }, "episode_limit": { "type": "integer", "default": 100, "maximum": 200, "minimum": 1, "description": "Episode limit" }, "episode_offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Episode offset" } }, "additionalProperties": false }arguments 54 linessearch reads unknown 3h ago
Search Bangumi subjects, persons, or characters in one call. Use scope=all|subject|person|character.
{ "type": "object", "required": [ "keyword" ], "properties": { "limit": { "type": "integer", "default": 10, "maximum": 20, "minimum": 1, "description": "Limit" }, "scope": { "enum": [ "all", "subject", "person", "character" ], "type": "string", "description": "Search scope" }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Offset" }, "keyword": { "type": "string", "description": "Keyword" }, "nsfw_filter": { "type": "boolean", "description": "NSFW filter" }, "subject_sort": { "enum": [ "match", "heat", "rank", "score" ], "type": "string", "description": "Subject sort" }, "subject_type": { "enum": [ 1, 2, 3, 4, 6 ], "type": "integer", "description": "Subject type" }, "career_filter": { "type": "array", "items": { "enum": [ "producer", "mangaka", "artist", "seiyu", "writer", "illustrator", "actor" ], "type": "string", "description": "Career" }, "description": "Career list" } }, "additionalProperties": false }arguments 78 linesget_user_profile reads unknown 8h ago
Get Bangumi user profile only. Use get_user_collections for collection snapshots.
{ "type": "object", "required": [], "properties": { "username": { "type": "string", "description": "Username" } }, "additionalProperties": false }arguments 11 linesget_episode reads unknown 16h ago
Get Bangumi episode details or episode collection status. episode_id alone = details. episode_id + collection=true = single collection. subject_id + collection=true = collection list.
{ "type": "object", "required": [], "properties": { "limit": { "type": "integer", "default": 100, "maximum": 200, "minimum": 1, "description": "Limit" }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Offset" }, "collection": { "type": "boolean", "description": "Set true to query collection status" }, "episode_id": { "type": "integer", "minimum": 1, "description": "Episode ID" }, "subject_id": { "type": "integer", "minimum": 1, "description": "Subject ID for collection list" }, "episode_type": { "enum": [ 0, 1, 2, 3, 4, 5, 6 ], "type": "integer", "description": "Episode type filter" } }, "additionalProperties": false }arguments 47 linesbrowse_subjects reads unknown 8h ago
Browse Bangumi subjects by type with optional filters (category, year, month, platform, series, sort). Required: subject_type (1=Book, 2=Anime, 3=Music, 4=Game, 6=Real).
{ "type": "object", "required": [ "subject_type" ], "properties": { "cat": { "type": "integer", "description": "Category filter" }, "sort": { "enum": [ "date", "rank" ], "type": "string", "description": "Sort order" }, "year": { "type": "integer", "description": "Year filter" }, "limit": { "type": "integer", "default": 30, "maximum": 50, "minimum": 1, "description": "Limit" }, "month": { "type": "integer", "maximum": 12, "minimum": 1, "description": "Month filter" }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Offset" }, "series": { "type": "boolean", "description": "Series filter (books)" }, "platform": { "type": "string", "description": "Platform filter (games)" }, "subject_type": { "enum": [ 1, 2, 3, 4, 6 ], "type": "integer", "description": "Subject type" } }, "additionalProperties": false }arguments 63 linesget_character reads unknown 8h ago
Get Bangumi character details plus appearances and voice actors. The returned payload keeps profile, subjects, and persons separate and can mark each section with _error.
{ "type": "object", "required": [ "character_id" ], "properties": { "character_id": { "type": "integer", "minimum": 1, "description": "Character ID" } }, "additionalProperties": false }arguments 14 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idac46e5301a9b6b4a.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/ac46e5301a9b6b4a/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/ac46e5301a9b6b4a?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.
- zigdocs.api.tski.uk ZigDocs