x-mcp-server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Each dedicated tool targets a clear action (create/delete/search/get/user), but x_call can execute the same operations generically, so an agent could occasionally choose between x_call and a wrapper. The descriptions are specific enough that this overlap is manageable.
Naming Consistency4/5All tools share an x_ prefix and use snake_case, with imperative verb-first names like list_operations, create_post, and search_posts. x_call is a slight deviation from the verb_noun pattern, but it still reads consistently as the generic dispatch verb.
Tool Count5/5Seven tools is a well-scoped set: five focused wrappers plus a discovery/generic-call pair cover common and long-tail X operations without bloating the server.
Completeness5/5The server explicitly reaches 175 of 190 X API v2 operations via x_list_operations plus x_call, and dedicated wrappers cover the most common post/user workflows. The tiny uncovered remainder is not an obvious gap for practical use.
Average 3.4/5 across 7 of 7 tools scored. Lowest: 2.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 3 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
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
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It merely says 'Call any X API v2 operation by id' and gives no indication of side effects, destructive potential, authentication requirements, rate limits, or response behavior. This is especially risky for a generic tool that could invoke create or delete operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant wording, and the core mechanism is front-loaded. It is efficient, though it is under-specified in other dimensions, which is a completeness problem rather than a conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a highly generic tool with no annotations, no output schema, and 0% parameter documentation, the description is severely incomplete. It fails to explain how to discover operation IDs, what body and params mean, what side effects may occur, and what the response looks like, leaving an agent without enough information to invoke it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only adds meaning for 'operation_id' through the phrase 'by id'. It does not explain how 'params' and 'body' are used, how they map to the selected operation, or how they relate to query parameters and request bodies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Call'), a defined resource ('any X API v2 operation'), and the key selection mechanism ('by id'). It implies a generic dispatcher role that differentiates it from the fixed-operation siblings, though it does not explicitly name the alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the dedicated siblings such as x_get_post or x_create_post. It also does not mention that operation IDs could come from x_list_operations, nor when the generic path should be preferred over specific tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only reveals that the response includes the requested fields ('whichever fields you ask for'). It does not disclose error behavior (e.g., not found), authentication requirements, rate limits, or whether expansions/tweet.fields must be provided. The field-selection nuance is helpful but insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence, front-loading the core purpose ('One post by id') before the field-selectivity qualifier. There is no fluff; however, brevity comes at the cost of missing detail, which is captured in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and undocumented parameters, yet the description only covers 'one post by id' and field selection. It omits return format, error contexts, and any elaboration on how field selection is expressed, making it underpowered for an agent to invoke reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It clarifies that post_id is the identifier and that field-related parameters exist, but it doesn't explain the format or distinction between expansions and tweet.fields, nor that tweet.fields is a literal property name. This partial mapping is not enough for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'One post by id' clearly identifies the resource (a single post) and the selection criterion (id), distinguishing it from x_search_posts which would return multiple posts. However, it lacks an explicit verb like 'get' or 'retrieve,' and doesn't name the sibling it differs from, so it falls short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over siblings such as x_search_posts or x_get_me. 'One post by id' only implies that the agent should use it when a post_id is known and a single post is needed, but there are no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It mentions the Basic-access requirement and that search targets 'recent' posts, but says nothing about pagination via next_token, result limits, ordering, rate limits, authentication details, or read-only behavior. For a search tool, this leaves important behavioral traits undisclosed.
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?
Two short sentences with no filler. The core action is front-loaded ('Search recent posts'), and the access constraint follows in a clearly separate sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no annotations, and no output schema, the tool is under-described. The description leaves parameter semantics, pagination behavior, and return shape unaddressed. An agent could make a basic query call but would lack the context needed to use advanced fields or interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%: only the query parameter has a description ('X search query syntax'). The tool description does not compensate for the undocumented next_token, max_results, or tweet.fields parameters. With low schema coverage, the description needed to add meaning but did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear operation ('Search') on a clear resource ('recent posts'), which is distinguishable from siblings like x_get_post and x_create_post by the search verb. However, it does not explicitly differentiate itself from sibling lookup tools, stopping short of a 5.
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 only usage guidance is the access requirement: 'Needs at least Basic access; the free tier cannot read.' This gives a condition for when the tool is available, but no explicit guidance on when to choose it over x_get_post, x_list_operations, or x_call. Usage context is implied rather than stated.
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?
With no annotations provided, the description carries the full behavioral disclosure burden, and it does this well: it reveals that posts are immediately public, reversible via deletion, yet exposure persists after deletion ('everyone who saw it still saw it'). This is meaningful side-effect disclosure beyond the schema, though it omits other operational traits like rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the core action front-loaded and each subsequent clause adding distinct behavioral context. The prose is slightly conversational but every sentence earns its place; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and side effects well but, given there is no output schema, it omits what the tool returns (e.g., a post ID), which an agent would need for follow-up actions like x_delete_post. It also doesn't compensate for the two undocumented parameters. Adequate for a straightforward create tool, but with clear gaps.
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 60%, and the description adds no parameter-level meaning beyond what the schema already documents for text, media_ids, and reply_to_post_id. The two undocumented parameters (quote_post_id, reply_settings) remain unaddressed by the description, and the opening phrase 'Post to X' is purpose, not parameter semantics. The schema carries most of the load, so a midpoint score 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 opens with a specific verb+resource pair ('Post to X') that unambiguously states the tool's function. The write-versus-destructive clarification further distinguishes it from the sibling x_delete_post, so an agent can tell them apart at a glance.
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 this is the tool for creating posts versus deleting them, but it never explicitly states when to choose this over alternatives or names a sibling. The 'immediately public' and 'can be deleted afterwards' context hints at consequences the agent should weigh, but there is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and does disclose an important auth behavior (user-context token needed). However, it says nothing about return format, error cases, or data scope, so it is only partially transparent.
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?
Two short sentences, no filler, and the key auth requirement is stated immediately. Every word adds value.
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 low-complexity tool with one documented optional parameter and no output schema, this description covers the essential purpose and the unique auth requirement. It could still benefit from an explicit statement of what is returned, but it is largely complete.
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 is already fully described in the schema, and the description adds no additional meaning about user.fields. This matches the baseline for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'the authenticated user', which matches the tool name x_get_me and clearly targets the current user's profile. It lacks an explicit verb and does not draw a distinction from sibling tools like x_get_post, so it falls short of a 5.
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?
It provides a clear condition for invocation: a user-context token is required and app-only auth is insufficient. It does not explicitly name alternatives or when-not-to-use, but the auth constraint gives the agent actionable selection 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states 'Cannot be undone,' highlighting the irreversible destructive nature, and restricts to 'your own posts,' implying an ownership/permission constraint. It does not mention authentication, rate limits, or side effects, but for a simple delete it covers the most critical behavioral traits.
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 short sentences with zero filler. The core action is front-loaded, and the critical caveat about irreversibility is stated concisely. Every word earns its place.
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 one-parameter destructive tool without an output schema, the description covers the essential context: what it does, the ownership scope, and the permanence of the action. It omits the success/response format, but this is a minor gap given the tool's simplicity. The required parameter is documented in the schema, so the description need not repeat it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not mention the post_id parameter or how to specify which post to delete. The schema's parameter name and type provide minimal information, yet the description adds no semantic context beyond the tool's general purpose. This leaves the agent to infer that post_id identifies the target post.
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 states a specific verb and resource: 'Delete one of your own posts.' It also scopes the action to 'your own posts,' which clearly distinguishes it from siblings like x_create_post, x_get_post, and x_search_posts. The action is unambiguous and immediately understandable.
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: use this tool when you want to delete a post that you own. However, it does not explicitly state when not to use it, nor does it mention alternatives among the sibling tools. The guidance is reasonable but entirely implicit.
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?
The description discloses that 175 of 190 operations are reachable and mentions the paid access tier requirement for some endpoints, giving insight into what the tool can and cannot do. However, it does not explicitly state that the tool is read-only or describe any side effects, though these are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise (two sentences) and front-loads the purpose. The inclusion of the paid access tier note adds some length but provides useful context. Overall it is well-structured without being bloated.
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?
Given the tool has no output schema and is a listing/discovery tool, the description provides sufficient context: it states what the tool does, how to use it, and relevant caveats. It does not specify return format, but that is not critical for this type of tool.
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 schema descriptions fully cover both parameters ('search' and 'include_excluded'). The tool description does not add additional semantic details beyond what is already in the schema, so it stays at the baseline for full coverage.
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 purpose: to browse the X API v2 and find operation IDs for x_call. It explicitly mentions 'Browse the X API v2' and 'Use this to find an operation id for x_call', making the resource and action unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to find an operation id for x_call', giving direct guidance on when to use the tool. It also provides context about reachable operations and the paid access tier, helping users understand the tool's scope and limitations.
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:
shields.io Endpoint
For READMEs with an existing badge row. Append &style=flat-square (or any other shields.io style) to match the rest, and &metric=tools, &metric=maintenance or &metric=claim to badge a different dimension.
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/N-Graves/x-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server