topgg-mcp
This server lets AI assistants manage Top.gg listings (Discord bots, Discord servers, or Roblox games) via the Top.gg v1 API using the Model Context Protocol.
Retrieve project info (
get_project): Fetch details of the project associated with your API token.Update listing (
update_project): Modify the headline (3–140 chars) and page content (300–50,000 chars) with support for multiple locales (e.g.,en,de,fr,ja).Register Discord slash commands (
register_commands): Replace all slash commands for your bot project; passing an empty array clears them all.Fetch vote history (
get_votes): Retrieve paginated, cursor-based vote history starting from a specified date (up to 1 year ago).Check user vote status (
check_user_vote): Determine if a specific user has voted, with support for Top.gg and Discord ID namespaces.Submit metrics (
post_metrics): Post a single metrics update — Discord bot (server/shard counts), Discord server (member/online counts), or Roblox game (player count).Batch submit metrics (
post_metrics_batch): Send up to 100 timestamped metrics entries in a single request.Create announcements (
create_announcement): Publish categorized announcements (announcement,event,new_feature) with a title (3–100 chars) and content (10–2,000 chars), limited to one every 4 hours.
Provides tools for managing Top.gg bot or server listings, including retrieving project info, updating page content (per locale), registering Discord slash commands, fetching vote history, checking user votes, submitting metrics (server count, player count, etc.), and creating announcements.
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., "@topgg-mcpget my bot's latest votes"
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.
topgg-mcp
A Model Context Protocol server for the Top.gg v1 API, letting AI assistants manage a Top.gg Discord bot, Discord server, or Roblox game listing directly.
Tools
Tool | Description |
| Retrieve the project associated with your token |
| Update headline and page content (per locale) |
| Replace registered Discord slash commands (empty clears all) |
| Fetch paginated vote history (cursor-based) |
| Check whether a specific user has voted |
| Submit Discord bot/server or Roblox game metrics |
| Submit up to 100 metrics entries in one request |
| Post a categorized project announcement (1 per 4 hours) |
Related MCP server: StashDog MCP Server
Requirements
Node.js 22+
A Top.gg API token (obtained from your Top.gg dashboard)
Setup
Single project
Set TOPGG_TOKEN to your API token. The project parameter on every tool is optional and can be omitted.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"topgg": {
"command": "npx",
"args": ["-y", "topgg-mcp"],
"env": {
"TOPGG_TOKEN": "your-token-here"
}
}
}
}Claude Code:
claude mcp add topgg -e TOPGG_TOKEN=your-token-here -- npx -y topgg-mcpMultiple projects
Use TOPGG_TOKEN_<NAME> for each project. The suffix becomes the name used in the project parameter (lowercased). When multiple tokens are configured, the project parameter is required on every tool call.
{
"mcpServers": {
"topgg": {
"command": "npx",
"args": ["-y", "topgg-mcp"],
"env": {
"TOPGG_TOKEN_MYBOT": "token-for-mybot",
"TOPGG_TOKEN_OTHERBOT": "token-for-otherbot"
}
}
}
}With the above config, pass "project": "mybot" or "project": "otherbot" in every tool call.
You can also mix TOPGG_TOKEN (name: "default") with named tokens if needed.
API coverage
The server targets the Top.gg v1 REST API (https://top.gg/api/v1). All requests are authenticated with Authorization: Bearer <token>. API errors are surfaced as readable tool errors using the RFC 7807 problem details format returned by Top.gg.
Method | Endpoint | Tool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Rate limits (enforced by Top.gg, not this server):
100 requests/second globally
60 requests/minute for bot endpoints
Violations result in a 1-hour block
Announcement cooldown responses include the API's
Retry-Aftervalue in the tool error
Development
pnpm install
pnpm build # compile to dist/
pnpm typecheck # TypeScript strict check
pnpm lint # ESLint
pnpm format # Prettier
pnpm test # Vitest (no live API required)
pnpm test:coverageTests use fetch mocks — no TOPGG_TOKEN is needed to run them.
License
ISC
Available Tools
8 toolscheck_user_voteB
Check the current vote status for a specific user on this Top.gg project.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ID namespace. Defaults to Top.gg. | |
| userId | Yes | The user ID to check. | |
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'check current vote status'. Does not disclose whether it's read-only, authentication needs, or what 'vote status' entails (e.g., boolean, timestamp). Minimal behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste. However, could be expanded slightly without losing conciseness to improve informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description omits return format, error handling, or what 'vote status' means. Sibling tools include 'get_votes' suggesting similar functionality, but lacks completeness for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. Description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'check', resource 'vote status', and scope 'specific user on this Top.gg project'. Distinguishes from sibling 'get_votes' by targeting a single user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for checking a single user's vote, but no explicit guidance on when to use vs alternatives (e.g., 'get_votes' for batch). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_announcementA
Create an announcement for the current Top.gg project. Rate-limited to one announcement per 4 hours.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Announcement title. | |
| content | Yes | Announcement body text. | |
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. | |
| category | No | Announcement category. Defaults to "announcement". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explicitly states the rate limit and that it applies to the current project, disclosing key behavioral constraints. However, it does not mention effects on existing announcements, idempotency, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences, no fluff. Front-loaded with the action verb and resource. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should provide some information about return values, success/error behavior, or other outcomes. It fails to do so. The description is too brief given the tool has 4 parameters and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning to the parameters beyond what the schema already provides (e.g., title, content, project, category). No extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'announcement for the current Top.gg project'. It is specific and distinguishes from sibling tools like get_project, get_votes, etc., which are clearly different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a rate limit ('one announcement per 4 hours'), which provides a usage constraint, but it does not give guidance on when to use this tool versus alternatives. It lacks explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectB
Retrieve the Top.gg project associated with the authenticated token.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Retrieve', implying read-only, but does not disclose auth details, rate limits, or what happens if the token is invalid. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations. Description covers basic purpose but lacks details about return value, response structure, or prerequisites. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning to the parameter; the schema already explains when the parameter is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Retrieve' and the resource 'Top.gg project', with context of the authenticated token. It distinguishes from sibling tools like get_votes and create_announcement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The parameter description in the schema mentions when to include the project parameter, but the tool description itself lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_votesA
Fetch a page of vote history for the current Top.gg project. For the first page, provide startDate (ISO 8601, max 1 year ago). For subsequent pages, pass the cursor returned by the previous response. An empty data array means there are no more votes.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from the previous response. Use this to fetch the next page. Takes precedence if startDate is also provided. | |
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. | |
| startDate | No | ISO 8601 datetime to start from (e.g. 2026-01-01T00:00:00Z). Required for the first page and must be within the last year. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals pagination behavior and cursor precedence but omits error handling, rate limits, or authentication requirements. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded purpose, zero waste. Clear structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers pagination and termination condition but lacks description of vote object structure. Given no output schema, more detail on return format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining cursor precedence, startDate constraints (max 1 year ago), and project parameter condition (required for multiple tokens).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it 'Fetch a page of vote history for the current Top.gg project.' Differentiates from sibling tools like check_user_vote by specifying paginated history retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance for first page (startDate) and subsequent pages (cursor). Mentions empty data array indicates end. Implicitly distinguishes from other tools but lacks explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_metricsB
Submit a metrics payload for the current Top.gg project. Provide the fields relevant to your project type.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. | |
| shard_count | No | Discord bot: shards. | |
| member_count | No | Discord server: members. | |
| online_count | No | Discord server: online members. | |
| player_count | No | Roblox game: current players. | |
| server_count | No | Discord bot: servers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states that the tool submits metrics, but omits details about authorization, idempotency, rate limits, side effects, or error handling common to mutation tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The action is front-loaded, and the second sentence provides contextual guidance. Ideal conciseness for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, the description is adequate for a simple metric submission but lacks context on expected return values, confirmation messages, or how it relates to the batch sibling and other tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds a helpful directive to select relevant fields per project type, which provides some additional context beyond the schema, but does not explain parameter relationships or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Submit a metrics payload for the current Top.gg project', clearly indicating the action (submit) and resource (metrics for a Top.gg project). The name 'post_metrics' and the sibling 'post_metrics_batch' imply differentiation, but the description does not explicitly distinguish between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Provide the fields relevant to your project type,' which gives some guidance on parameter selection, but it does not explain when to use this tool versus alternatives like 'post_metrics_batch', nor does it include when-not or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_metrics_batchB
Submit up to 100 metrics entries in a single batch request.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Array of metrics entries (1-100). | |
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks details on behavioral aspects such as authentication needs, rate limits, idempotency, or what happens to existing data (e.g., append vs replace).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the core functionality without extraneous words, though it could include slightly more useful detail without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description does not explain return values, error handling, or operational context, making it insufficient for a complete understanding of the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond what the schema already provides; it mentions 'up to 100' which is already in the schema's maxItems constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it submits up to 100 metrics entries in a batch, which distinguishes it from the sibling 'post_metrics' that likely handles single entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the purpose is clear, the description does not explicitly guide when to use this batch tool versus the singular 'post_metrics' or other alternatives, leaving usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_commandsA
Replace all registered Discord slash commands for the current Top.gg bot project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. | |
| commands | Yes | Array of slash command definitions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'Replace all registered Discord slash commands' which is a clear behavioral trait indicating destructive overwrite. With no annotations provided, the description carries the burden and does so adequately by disclosing the full scope of the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and contains no wasted words. It efficiently conveys the tool's purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive replacement of commands) and absence of an output schema, the description is minimal. It does not mention side effects, error states, or authentication needs, which would be beneficial for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters (project, commands) described in the input schema. The description adds no extra meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool replaces all registered Discord slash commands for the current Top.gg bot project. The verb 'replace' and resource 'all registered Discord slash commands' are specific and distinguish it from sibling tools like get_project (read) or create_announcement (announcements).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for replacing commands but provides no explicit guidance on when to use vs alternatives, nor any exclusions. It is implied that this is for bulk replacement, but no alternatives or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectB
Update the headline and/or page content of the current Top.gg project listing.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Name of the configured project to target (e.g. "mybot" for TOPGG_TOKEN_MYBOT). Required when multiple tokens are configured; omit when only one is configured. | |
| headline | No | Supported locale codes mapped to headline text (3-140 characters). | |
| pageContent | No | Supported locale codes mapped to Markdown page content (300-50,000 characters). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states it updates, but lacks details on authorization, idempotency, rate limits, or side effects. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys the action. Front-loaded with verb and resource. Could be slightly structured more, but no excess words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks details on output/return value. For a mutation with no output schema, description should indicate what the response contains. Also doesn't mention prerequisites or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds minimal value beyond the schema; it repeats 'headline and/or page content' but doesn't clarify format or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Update') and resource ('Top.gg project listing'). Specifies what can be updated (headline and/or page content). Distinguishes from sibling tools like get_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., get_project). Only mentions a condition for the 'project' parameter, but no broader usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.0.4- Changed
create_announcement5 fields changed- added
Input schema / properties / categoryAdded value: +{ + "description": "Announcement category. Defaults to \"announcement\".", + "enum": [ + "announcement", + "event", + "new_feature" + ], + "type": "string" +} - added
Input schema / properties / content / maxLengthAdded value: +2000 - added
Input schema / properties / content / minLengthAdded value: +10 - added
Input schema / properties / title / maxLengthAdded value: +100 - added
Input schema / properties / title / minLengthAdded value: +3
- Changed
get_votes2 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor from the previous response. Use this to fetch the next page. Mutually exclusive with startDate."New value: +"Pagination cursor from the previous response. Use this to fetch the next page. Takes precedence if startDate is also provided." - changed
Input schema / properties / startDate / descriptionPrevious value: -"ISO 8601 datetime to start from (e.g. 2026-01-01T00:00:00Z). Required for the first page. Must be within the last year. Mutually exclusive with cursor."New value: +"ISO 8601 datetime to start from (e.g. 2026-01-01T00:00:00Z). Required for the first page and must be within the last year."
- Changed
post_metrics17 fields changed- changed
Input schema / properties / member_count / descriptionPrevious value: -"Discord server: member count."New value: +"Discord server: members." - changed
Input schema / properties / member_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / online_count / descriptionPrevious value: -"Discord server: online member count."New value: +"Discord server: online members." - changed
Input schema / properties / online_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / player_count / descriptionPrevious value: -"Roblox game: player count."New value: +"Roblox game: current players." - changed
Input schema / properties / player_count / minimumPrevious value: --9007199254740991New value: +0 - removed
Input schema / properties / players_maxRemoved value: -{ - "description": "Minecraft: max player slots.", - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" -} - removed
Input schema / properties / players_onlineRemoved value: -{ - "description": "Minecraft: players online.", - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" -} - changed
Input schema / properties / server_count / descriptionPrevious value: -"Discord bot: number of servers."New value: +"Discord bot: servers." - changed
Input schema / properties / server_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / shard_count / descriptionPrevious value: -"Discord bot: number of shards."New value: +"Discord bot: shards." - changed
Input schema / properties / shard_count / minimumPrevious value: --9007199254740991New value: +0 - removed
Input schema / properties / tick_duration_avgRemoved value: -{ - "description": "Minecraft: average tick duration.", - "type": "number" -} - removed
Input schema / properties / tick_rateRemoved value: -{ - "description": "Minecraft: tick rate.", - "type": "number" -} - removed
Input schema / properties / uptime_secondsRemoved value: -{ - "description": "Minecraft: server uptime in seconds.", - "type": "number" -} - removed
Input schema / properties / world_size_xRemoved value: -{ - "description": "Minecraft: world size X.", - "type": "number" -} - removed
Input schema / properties / world_size_yRemoved value: -{ - "description": "Minecraft: world size Y.", - "type": "number" -}
- Changed
post_metrics_batch13 fields changed- changed
Input schema / properties / data / descriptionPrevious value: -"Array of metrics entries (1–100)."New value: +"Array of metrics entries (1-100)." - changed
Input schema / properties / data / items / properties / metrics / properties / member_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / data / items / properties / metrics / properties / online_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / data / items / properties / metrics / properties / player_count / minimumPrevious value: --9007199254740991New value: +0 - removed
Input schema / properties / data / items / properties / metrics / properties / players_maxRemoved value: -{ - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" -} - removed
Input schema / properties / data / items / properties / metrics / properties / players_onlineRemoved value: -{ - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" -} - changed
Input schema / properties / data / items / properties / metrics / properties / server_count / minimumPrevious value: --9007199254740991New value: +0 - changed
Input schema / properties / data / items / properties / metrics / properties / shard_count / minimumPrevious value: --9007199254740991New value: +0 - removed
Input schema / properties / data / items / properties / metrics / properties / tick_duration_avgRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / data / items / properties / metrics / properties / tick_rateRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / data / items / properties / metrics / properties / uptime_secondsRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / data / items / properties / metrics / properties / world_size_xRemoved value: -{ - "type": "number" -} - removed
Input schema / properties / data / items / properties / metrics / properties / world_size_yRemoved value: -{ - "type": "number" -}
- Changed
register_commands39 fields changed- added
Input schema / definitions / __schema0 / properties / autocompleteAdded value: +{ + "type": "boolean" +} - added
Input schema / definitions / __schema0 / properties / channel_typesAdded value: +{ + "items": { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "type": "array" +} - added
Input schema / definitions / __schema0 / properties / choices / items / properties / name / maxLengthAdded value: +100 - added
Input schema / definitions / __schema0 / properties / choices / items / properties / name / minLengthAdded value: +1 - added
Input schema / definitions / __schema0 / properties / choices / items / properties / name_localizationsAdded value: +{ + "additionalProperties": { + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" +} - changed
Input schema / definitions / __schema0 / properties / choices / items / properties / value / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "number" - } -]New value: +[ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "number" + } +] - added
Input schema / definitions / __schema0 / properties / choices / maxItemsAdded value: +25 - added
Input schema / definitions / __schema0 / properties / description / maxLengthAdded value: +100 - added
Input schema / definitions / __schema0 / properties / description / minLengthAdded value: +1 - added
Input schema / definitions / __schema0 / properties / description_localizations / additionalProperties / maxLengthAdded value: +100 - added
Input schema / definitions / __schema0 / properties / description_localizations / additionalProperties / minLengthAdded value: +1 - added
Input schema / definitions / __schema0 / properties / max_lengthAdded value: +{ + "maximum": 6000, + "minimum": 1, + "type": "integer" +} - added
Input schema / definitions / __schema0 / properties / max_valueAdded value: +{ + "type": "number" +} - added
Input schema / definitions / __schema0 / properties / min_lengthAdded value: +{ + "maximum": 6000, + "minimum": 0, + "type": "integer" +} - added
Input schema / definitions / __schema0 / properties / min_valueAdded value: +{ + "type": "number" +} - added
Input schema / definitions / __schema0 / properties / name / maxLengthAdded value: +32 - added
Input schema / definitions / __schema0 / properties / name / minLengthAdded value: +1 - added
Input schema / definitions / __schema0 / properties / name_localizations / additionalProperties / maxLengthAdded value: +32 - added
Input schema / definitions / __schema0 / properties / name_localizations / additionalProperties / minLengthAdded value: +1 - added
Input schema / definitions / __schema0 / properties / options / maxItemsAdded value: +25 - changed
Input schema / definitions / __schema0 / properties / type / maximumPrevious value: -9007199254740991New value: +11 - changed
Input schema / definitions / __schema0 / properties / type / minimumPrevious value: --9007199254740991New value: +1 - added
Input schema / properties / commands / items / properties / contextsAdded value: +{ + "items": { + "maximum": 2, + "minimum": 0, + "type": "integer" + }, + "type": "array" +} - added
Input schema / properties / commands / items / properties / default_member_permissionsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Input schema / properties / commands / items / properties / default_permissionAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / commands / items / properties / description / maxLengthAdded value: +100 - added
Input schema / properties / commands / items / properties / description_localizations / additionalProperties / maxLengthAdded value: +100 - added
Input schema / properties / commands / items / properties / dm_permissionAdded value: +{ + "type": "boolean" +} - added
Input schema / properties / commands / items / properties / handlerAdded value: +{ + "maximum": 2, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / commands / items / properties / integration_typesAdded value: +{ + "items": { + "maximum": 1, + "minimum": 0, + "type": "integer" + }, + "type": "array" +} - added
Input schema / properties / commands / items / properties / name / maxLengthAdded value: +32 - added
Input schema / properties / commands / items / properties / name / minLengthAdded value: +1 - added
Input schema / properties / commands / items / properties / name_localizations / additionalProperties / maxLengthAdded value: +32 - added
Input schema / properties / commands / items / properties / name_localizations / additionalProperties / minLengthAdded value: +1 - added
Input schema / properties / commands / items / properties / options / maxItemsAdded value: +25 - removed
Input schema / properties / commands / items / properties / type / descriptionRemoved value: -"ApplicationCommandType integer." - changed
Input schema / properties / commands / items / properties / type / maximumPrevious value: -9007199254740991New value: +4 - changed
Input schema / properties / commands / items / properties / type / minimumPrevious value: --9007199254740991New value: +1 - changed
Input schema / properties / commands / items / requiredPrevious value: -[ - "type", - "name", - "description" -]New value: +[ + "name", + "description" +]
- Changed
update_project8 fields changed- added
Input schema / properties / headline / additionalProperties / maxLengthAdded value: +140 - added
Input schema / properties / headline / additionalProperties / minLengthAdded value: +3 - changed
Input schema / properties / headline / descriptionPrevious value: -"Map of locale codes to headline text (e.g. {\"en\": \"My Bot\"})"New value: +"Supported locale codes mapped to headline text (3-140 characters)." - added
Input schema / properties / headline / propertyNames / enumAdded value: +[ + "en", + "de", + "fr", + "pt", + "tr", + "hi", + "ja", + "ar", + "nl", + "ko", + "it", + "es", + "ru", + "uk", + "vi", + "zh" +] - added
Input schema / properties / pageContent / additionalProperties / maxLengthAdded value: +50000 - added
Input schema / properties / pageContent / additionalProperties / minLengthAdded value: +300 - changed
Input schema / properties / pageContent / descriptionPrevious value: -"Map of locale codes to page description text (e.g. {\"en\": \"A cool bot\"})"New value: +"Supported locale codes mapped to Markdown page content (300-50,000 characters)." - added
Input schema / properties / pageContent / propertyNames / enumAdded value: +[ + "en", + "de", + "fr", + "pt", + "tr", + "hi", + "ja", + "ar", + "nl", + "ko", + "it", + "es", + "ru", + "uk", + "vi", + "zh" +]
8 tool updates
v0.0.0- First observed
check_user_vote - First observed
create_announcement - First observed
get_project - First observed
get_votes - First observed
post_metrics - First observed
post_metrics_batch - First observed
register_commands - First observed
update_project
TDQS
Each tool targets a distinct action (project info, announcement, update, commands, votes, metrics). The vote and metrics tools are clearly differentiated by single vs. batch/list, so no ambiguity.
All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., get_project, post_metrics_batch), making them predictable and easy to understand.
Eight tools cover the essential operations for managing a Top.gg project without being excessive. The count is well-scoped for the domain.
Core operations are covered, but there are minor gaps: no delete for project or announcement, no update for announcements or commands. The set is functional but not fully comprehensive.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
List, configure, chat with, analyse and embed your Echo AI assistants.
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Dokploy deployments, including creating and deploying applications, managing databases, configuring domains with SSL, and monitoring application status through a standardized interface.29MIT
- FlicenseBqualityFmaintenanceEnables AI assistants to manage StashDog inventory through natural language commands, supporting item management, collections, tags, smart search, and URL imports with secure authentication.11-
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to manage Todocko application data, including tasks, projects, worklogs, and attachments. It supports comprehensive project management operations such as tracking activity, managing Kanban boards, and handling shared project synchronization.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage project analysis, code metrics, documentation, Git operations, code quality, and file organization through natural language commands.102MIT
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/Paillat-dev/topgg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server