gamecalendar-mcp
Click on "Deploy 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., "@gamecalendar-mcpWhat games are releasing this week?"
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.
gamecalendar-mcp
Servidor MCP para la base de datos de GameCalendar (Neon Postgres). Permite a Claude consultar —y opcionalmente modificar— los datos del sitio directamente, sin pasar por la web.
Seguridad: lectura libre, escritura opt-in
Lectura: siempre disponible.
Escritura: solo si defines
GAMECALENDAR_MCP_WRITE=1. Sin esa variable, las tools de escritura ni se registran (Claude no puede llamarlas).delete_blog_postes destructiva y exigeconfirm=trueexplícito.update_gamesolo toca campos editables a mano (section, score, opencritic_score, early_access, trailer); el resto lo gestiona el sync de IGDB.
Related MCP server: TeamDesk MCP Server
Tools
Tool | Modo | Qué hace |
| lectura | Juegos por sección/plataforma |
| lectura | Busca juegos por nombre |
| lectura | Ficha completa (id o slug) |
| lectura | Posts (con o sin borradores) |
| lectura | Post completo por slug |
| lectura | Resumen de la DB |
| escritura | Crea post (borrador por defecto) |
| escritura | Edita campos de un post |
| escritura | Publica / despublica |
| escritura | Borra (requiere |
| escritura | Edita campos seguros de un juego |
Variables de entorno
Variable | Obligatoria | Descripción |
| sí | Cadena de conexión Neon (la misma de gamecalendar) |
| no |
|
Conectarlo a Claude Code
Con el CLI (recomendado), solo lectura:
claude mcp add gamecalendar \
--env DATABASE_URL="postgres://...neon..." \
-- node /home/zaswear/projects/packages/gamecalendar-mcp/index.jsCon escritura habilitada, añade el flag:
claude mcp add gamecalendar \
--env DATABASE_URL="postgres://...neon..." \
--env GAMECALENDAR_MCP_WRITE=1 \
-- node /home/zaswear/projects/packages/gamecalendar-mcp/index.jsO a mano, en la config MCP (~/.claude.json o .mcp.json del proyecto):
{
"mcpServers": {
"gamecalendar": {
"command": "node",
"args": ["/home/zaswear/projects/packages/gamecalendar-mcp/index.js"],
"env": {
"DATABASE_URL": "postgres://...neon...",
"GAMECALENDAR_MCP_WRITE": "1"
}
}
}
}No pongas la
DATABASE_URLen ningún archivo commiteado. Pásala por la config MCP (que es local) o por el entorno.
Probar sin Claude
pnpm -C packages/gamecalendar-mcp smoke # solo lectura
pnpm -C packages/gamecalendar-mcp smoke --write # comprueba que registran las tools de escrituraEl smoke lee DATABASE_URL del .env de gamecalendar.
Available Tools
6 toolsdb_statsEstadísticas de la DBA
Resumen: total de juegos por sección y nº de posts (publicados/borradores).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states that the tool returns a summary, but it does not disclose behavioral traits such as whether it is read-only, requires authentication, or has any side effects. The description is minimal in this regard.
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 is front-loaded with 'Resumen'. Every word is necessary and no extraneous information is present. It is efficiently structured for quick parsing.
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 an output schema and annotations, the description only partially informs the agent. It states the content (games by section, post counts) but not the return format or structure. For a simple statistics tool, this may be sufficient, but it leaves some ambiguity about how the data is presented.
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?
The tool has no parameters, and the input schema is empty with 100% schema description coverage. The description does not need to add parameter semantics since there are none, and the baseline for zero parameters is 4. The description adequately implies no inputs are 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 tool's purpose: it provides a summary of total games by section and number of posts (published/drafts). This is a specific verb (summary) and resource (DB statistics), and it distinguishes itself from sibling tools like list_blog_posts or list_releases which return item lists rather than aggregated statistics.
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 is given on when to use this tool versus siblings. The description implies it is for a high-level summary, but it does not mention when not to use it or provide alternatives. Thus, usage guidelines are only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blog_postDetalle de un postB
Post del blog completo (incluye body) por slug.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only mentions 'includes body', which is helpful, but omits key details like error handling (e.g., if slug not found), return format, or any required authentication.
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?
Extremely concise (4 words in Spanish). While it may be too brief, it front-loads the key information (full blog post, includes body, by slug) without unnecessary 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?
Given no output schema, the description should be more complete. It covers the main functionality but lacks details on error scenarios, return fields beyond 'body', and pagination or filtering options (though not needed for a single post retrieval).
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 0%, so description must compensate. The phrase 'por slug' adds minimal context beyond the schema's 'slug' parameter name. It does not explain what a slug is or provide format examples.
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 that the tool returns a complete blog post including its body, identified by slug. It distinguishes from siblings like list_blog_posts which likely returns a list, and get_game which returns a game.
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. It does not explicitly state it is for retrieving a single post by slug, but that is implied; no when-not-to-use or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gameDetalle de un juegoC
Ficha completa de un juego por id (número) o slug.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| slug | No |
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 does not disclose behavioral traits such as whether it is a read-only operation, required authentication, or what happens when neither parameter is provided (e.g., returns error vs. all games). The description only states the basic purpose.
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, which is efficient and front-loaded with the core purpose. However, it is under-informative for the complexity of the tool (two optional parameters, no output schema). It sacrifices necessary detail for brevity.
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 is incomplete. It does not explain the return format, error behavior, or how to specify the game if both id and slug are provided. The tool is simple but still missing key contextual information.
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?
The input schema has 0% description coverage. The description adds that 'id' is a number and 'slug' is a string, but provides no further details like format, validity constraints, or behavior if both are provided. The addition is minimal and does not fully compensate for the schema's lack of descriptions.
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 that it returns a complete game record (ficha completa) using an id or slug. The verb is implied (retrieve/get) and the resource is specified. However, it does not differentiate from sibling tools like search_games or list_releases, which could also return game data.
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. There is no mention of prerequisites, limitations, or exclusion criteria. A user must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blog_postsListar posts del blogC
Posts del blog. Por defecto solo publicados; include_drafts incluye borradores.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| include_drafts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions default visibility and a parameter. It omits critical behavioral traits such as read-only nature, pagination, ordering, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (14 words) but the first sentence is redundant with the title. It is not wasteful, but it sacrifices clarity for brevity.
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 has 2 parameters, no output schema, and no annotations, the description is insufficient. Missing details on return format, pagination, ordering, and how to retrieve all posts (e.g., beyond default limit).
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 0%, so the description must explain all parameters. It only describes 'include_drafts' as including drafts, but does not mention the 'limit' parameter at all, leaving half the parameters undocumented.
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 'Posts del blog' is a noun phrase that restates the title without an action verb, failing to clarify that the tool lists posts. The default behavior note adds context but does not compensate for the missing verb.
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 provides no guidance on when to use this tool over siblings like 'get_blog_post' or 'search_games'. It only explains parameter defaults (include_drafts) without cross-tool comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_releasesListar lanzamientosC
Juegos de una sección (upcoming/recent/anticipated/catalog), opcionalmente por plataforma.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| section | No | upcoming | |
| platform | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as read-only nature, performance implications, or response format. Only implicitly suggests listing via 'juegos de una sección.'
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 very concise (one short sentence), but it sacrifices completeness. It is front-loaded with the main purpose, yet lacks detail warranted by the tool's 4 parameters.
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 annotations, no output schema, and 4 parameters, the description fails to cover pagination, return format, or any behavioral context beyond the section and platform filter.
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 0%, so the description must compensate. It only explains section and platform partially, omitting limit and offset. Pagination parameters are not described.
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 indicates that the tool lists games from a given section (upcoming/recent/anticipated/catalog) and optionally filters by platform. It distinguishes from sibling search_games by focusing on browsing rather than text search.
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 is provided about when to use this tool vs alternatives like search_games. The description simply states what it does without suggesting use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_gamesBuscar juegosB
Busca juegos por nombre (coincidencia parcial, insensible a mayúsculas).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses partial matching and case-insensitivity, which are key behavioral traits. However, it omits important details like pagination, result format, or behavior when no results are found.
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 immediately conveys the core functionality. Every word is necessary and there is no redundant information.
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 two parameters and absence of output schema or annotations, the description is too sparse. It does not cover the limit parameter, expected results, or any edge cases, making it incomplete for an agent to confidently invoke.
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 0%; the description adds no meaning to the query or limit parameters. The schema itself provides type and constraints, but the description fails to elaborate on how parameters affect the search or what valid inputs are.
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 searches for games by name with partial match and case-insensitivity. 'Busca juegos por nombre (coincidencia parcial, insensible a mayúsculas)' specifies the action and resource distinctly from siblings like get_game (which likely retrieves by ID) or list_releases.
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 is provided on when to use this tool versus alternatives such as get_game or list_blog_posts. The description only states what it does without contextual recommendations or exclusions.
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.
6 tool updates
v1.0.0- First observed
db_stats - First observed
get_blog_post - First observed
get_game - First observed
list_blog_posts - First observed
list_releases - First observed
search_games
TDQS
Scored across 6 tools
Each tool has a clear, distinct purpose: db_stats for statistics, get_blog_post for a single post, get_game for a single game, list_blog_posts for listing posts, list_releases for filtered games, and search_games for search. No overlap in functionality.
Most tools follow a verb_noun pattern with snake_case (e.g., get_blog_post, list_releases). The exception is db_stats, which uses an abbreviation instead of a verb-noun structure, but it remains clear and consistent with the overall style.
With 6 tools, the server is well-scoped for a game calendar and blog querying system. Each tool addresses a specific need without redundancy or excessive granularity.
The tool set covers read operations (get, list, search, stats) for games and blog posts, but lacks any create, update, or delete operations. For a query-only server this might be acceptable, but the absence of write capabilities limits the surface for typical CRUD tasks.
Maintenance
Related MCP Connectors
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for searching Airweave collections with natural language queries.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceAn MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.19-
- AlicenseNot gradedqualityDmaintenanceMCP server for TeamDesk databases, enabling CRUD operations, search, and document generation via natural language.3MIT
- AlicenseAqualityAmaintenanceSecurity-first, read-only MCP server for Microsoft SQL Server, enabling safe natural-language querying of databases.57 npmMIT
- FlicenseNot gradedqualityCmaintenanceMCP server enabling natural-language querying of SQLite databases via schema discovery, GraphRAG retrieval, and safely guarded read-only SQL execution.-