bilibili-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: URL parsing, authorized user info, single video retrieval, video listing, user stats, and video stats. There is no overlap or ambiguity between them.
Naming Consistency5/5All tool names follow the same bilibili_verb_noun pattern using snake_case. This makes the tool set predictable and easy to navigate.
Tool Count5/5With 6 tools, the server is well-scoped for a Bilibili-focused MCP covering URL parsing and authorized user data retrieval. Each tool earns its place with no redundancy.
Completeness4/5The toolset covers the core lifecycle of reading authorized user data and video stats. Minor gaps exist such as no batch video stats or search functionality, but these are not critical given the server's purpose.
Average 4.2/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- No commit activity data available
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and idempotent safety. The description adds valuable context beyond annotations: the required ARC_BASE scope, the official Open Platform context, and the page size limit of 1-50. This gives the agent useful behavioral expectations, though it doesn't cover response format or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the primary purpose and then add key constraints (scope, page size). Every word earns its place, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool, the description is fairly complete: it states the resource, scope, pagination limit, and platform. It doesn't explain return structure, but the response_format parameter covers that, and no output schema exists. Minor gaps like sorting or rate limits are not critical for typical usage, so a 4 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (75%), with descriptions for page, page_size, and response_format. The description only reinforces the page size limit but does not explain parameters like status or response_format. Since schema does most of the work, a baseline of 3 is appropriate; description adds minimal extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists paginated video submissions for the authorized user, using a specific verb 'List' and a distinct resource (videos). This distinguishes it from sibling tools like get_video or get_video_stats, which focus on single items or statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing a user's videos but does not explicitly mention when to use this over alternatives or provide exclusions. It gives context (authorized user, pagination, scope) but lacks direct comparison with sibling tools, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as readOnly, openWorld, and idempotent. The description adds valuable context beyond annotations by specifying the required USER_INFO scope and the exact fields returned. This exceeds the baseline for annotation-covered safety but lacks details on error behavior or rate limits, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that front-loads the key output fields. Every word carries meaning and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description covers purpose, scope requirement, and returns. It could mention behavior on missing/invalid tokens or explicitly reference the response_format option, but these are minor gaps, so it's one step above the minimum viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter, response_format, has a description in the schema that fully covers its meaning (markdown for people, json for programs). Since schema coverage is 100%, the tool description adds nothing beyond the schema, consistent with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('authorized Bilibili user'), listing the exact data returned (nickname, avatar URL, app-scoped OpenID). This distinguishes it from sibling tools like get_user_stats, which focus on statistics rather than identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by specifying the tool retrieves the user who authorized the configured access token and requires USER_INFO scope, implying when to use it. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the USER_DATA scope requirement and clarifies that it reads the authorized user's stats, which are valuable behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with the first sentence front-loading the verb and output metrics, and the second adding essential auth context. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no output schema, the description lists the returned metrics and auth requirement, which is largely sufficient. It doesn't explicitly mention response_format behavior, but the schema covers that, and annotations handle safety and idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single response_format parameter, so baseline 3 applies. The tool description doesn't add parameter-specific detail, but the schema already clearly explains the allowed values and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb 'Get' and names the exact metrics: following, follower, and approved-video counts. It clearly distinguishes from sibling tools like bilibili_get_video_stats by specifying 'authorized user' and the official Open Platform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
States the tool operates on the authorized user and requires USER_DATA scope, providing a clear prerequisite and context. It doesn't explicitly name alternatives, but the 'authorized user' qualifier implies when this tool is appropriate versus other Bilibili tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds valuable context about authorization scope (ARC_BASE) and the constraint that only videos owned or co-authored by the authorized user can be accessed. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary purpose and immediately followed by constraints. Every word adds value, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explicitly describe the return value structure beyond the response_format parameter. However, given the simplicity of fetching a single video by ID and rich annotations, the description covers the essential context for correct usage. A minor gap exists in not describing the exact fields returned, but it remains complete enough for a straightforward read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both resource_id and response_format fully described in the schema. The description does not add extra parameter semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get one video submission owned or co-authored by the authorized user', which specifies a distinct verb (get), resource (video submission), and ownership scope. It differentiates from sibling tools like bilibili_list_videos (list) and bilibili_get_video_stats (stats) by focusing on a single owned video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when not to use the tool ('cannot read arbitrary videos') and mentions a scope requirement (ARC_BASE), which guides appropriate usage. It does not explicitly name alternative tools, but the exclusion of arbitrary videos is clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: the operation is local, does not contact Bilibili, and does not resolve b23.tv redirects. This meaningfully supplements the annotation data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no fluff. Every clause adds information: the input type, the output, the local processing, and the non-resolving behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parsing tool with no output schema, the description is complete in explaining inputs, outputs, and limitations. It could mention error handling for invalid identifiers, but the core use case and boundary conditions are clearly covered, making it adequate for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (input and response_format) described in the schema. The tool description adds context about identifier types and output contents but does not provide additional per-parameter semantics beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Parse' with the resource 'Bilibili BV/av/ep/ss identifier or HTTPS URL' and clearly states the outputs (resource type, id, canonical URL). It distinguishes itself from sibling tools by emphasizing local parsing without contacting Bilibili, which is unique among the listed tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: for parsing identifiers or URLs locally, and explicitly mentions a non-goal ('does not contact Bilibili or resolve b23.tv redirects'). It does not name alternative sibling tools directly, but the context makes the boundary clear enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is covered. The description adds valuable context beyond annotations: it explicitly requires ARC_DATA scope, which is an authorization prerequisite, and it clarifies the resource scope (owned/co-authored videos). This goes beyond what annotations provide, though it does not describe error behaviors or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and key metrics. It avoids redundancy with the annotations and schema, containing only the essential additional context (auth scope and ownership constraint).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only statistics tool with robust schema (100% parameter coverage) and annotations declaring safety and idempotency, the description completes the picture by listing the returned metrics, the ownership requirement, and the auth scope. The absence of an output schema is mitigated by the description's explicit enumeration of what the stats include.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (resource_id and response_format) fully described in the schema, including pattern, enum, and defaults. The tool description adds only contextual scope (owned/co-authored) and the auth requirement, not parameter-specific semantics. Baseline 3 is appropriate since the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Get') and resource ('statistics for a video'), enumerates the exact metrics (views, likes, coins, favorites, replies, danmaku, shares), and distinguishes it from sibling tools like bilibili_get_video and bilibili_get_user_stats by specifying it's for videos owned or co-authored by the authorized user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for retrieving statistics for the authorized user's own or co-authored videos, and it mentions the required ARC_DATA scope. It does not explicitly name alternative tools or state when not to use it, but the scope restriction and the sibling tool list imply appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/nameefef/bilibili-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server