Dev.to MCP Server
Dev.to MCP Server
Dieses Repository enthält eine Model Context Protocol-Serverimplementierung für Dev.to, die es KI-Assistenten ermöglicht, auf Dev.to-Inhalte zuzugreifen und mit ihnen zu interagieren.

Was ist MCP?
Das Model Context Protocol (MCP) ist ein Standard, der KI-Assistenten die Schnittstelle zu externen Diensten, Tools und Datenquellen ermöglicht. Dieser Server implementiert die MCP-Spezifikation, um Zugriff auf Dev.to-Inhalte zu ermöglichen. Weitere Informationen zu MCP finden Sie in diesem Video .
Related MCP server: devto-mvp-server
Merkmale
Holen Sie sich die neuesten und angesagtesten Artikel von Dev.to
Suche nach Artikeln nach verschiedenen Kriterien
Erhalten Sie detaillierte Informationen zu bestimmten Artikeln
Erhalten Sie detaillierte Informationen zu einem Benutzer.
Greifen Sie per Tag oder Benutzername auf Artikel zu
Erstellen und veröffentlichen Sie neue Artikel auf Dev.to
Vorhandene Artikel aktualisieren
Caching-Mechanismus zur Verbesserung der Leistung und Reduzierung von API-Aufrufen
Installation
Dieses Repository klonen
git clone https://github.com/Arindam200/devto-mcp.git
cd devto-mcpStellen Sie eine Verbindung zum MCP-Server her
Kopieren Sie das folgende JSON mit den entsprechenden {{PATH}}-Werten:
{ "mcpServers": { "devto": { "command": "{{PATH_TO_UV}}", // Run `which uv` and place the output here "args": [ "--directory", "{{PATH_TO_SRC}}",// cd into the repo, run `pwd` and enter the output here "run", "server.py" ], "env": { "DEV_TO_API_KEY":"Your Dev.to API Key" // Get it from https://dev.to/settings/extensions. } } } }Sie können einen Dev.to-API-Schlüssel von Ihrer Dev.to-Einstellungsseite erhalten.
Für Claude speichern Sie dies als
claude_desktop_config.jsonin Ihrem Claude Desktop-Konfigurationsverzeichnis unter:~/Library/Application Support/Claude/claude_desktop_config.jsonSpeichern Sie dies für Cursor als
mcp.jsonin Ihrem Cursor-Konfigurationsverzeichnis unter:~/.cursor/mcp.jsonClaude Desktop / Cursor neu starten
Öffnen Sie Claude Desktop und Devto sollte jetzt als verfügbare Integration angezeigt werden.
Oder starten Sie Cursor neu.
Verfügbare Tools
Der Server stellt die folgenden Tools bereit:
get_latest_articles()– Holen Sie sich die neuesten Artikel von Dev.toget_top_articles()- Holen Sie sich die beliebtesten Artikel von Dev.toget_articles_by_tag(tag)- Artikel nach Tag abrufenget_article_by_id(id)- Holen Sie sich einen bestimmten Artikel nach IDsearch_articles(query, page=1)- Suche nach Artikeln anhand von Schlüsselwörtern im Titel/in der Beschreibungget_article_details(article_id)– Vollständigen Inhalt und Metadaten für einen bestimmten Artikel abrufenget_articles_by_username(username)- Artikel eines bestimmten Autors abrufencreate_article(title, body_markdown, tags, published)– Einen neuen Artikel erstellen und veröffentlichenupdate_article(article_id, title, body_markdown, tags, published)– Einen vorhandenen Artikel aktualisieren
Beispielabfragen
Hier sind einige Beispiele dafür, was Sie einem mit diesem Server verbundenen KI-Assistenten fragen können:
„Finden Sie Artikel über Python auf Dev.to“
„Zeig mir die neuesten Dev.to-Artikel“
"Details zum Artikel 1234 abrufen"
„Welche Artikel hat der Benutzer ‚Ben‘ geschrieben?“
„Suche nach Artikeln zum Thema maschinelles Lernen“
„Erstellen Sie einen neuen Artikel mit dem Titel ‚Erste Schritte mit Python‘“
„Aktualisieren Sie meinen Artikel mit der ID 5678, um einen Tippfehler im Inhalt zu beheben.“
Authentifizierung
Der Server benötigt für bestimmte Vorgänge, insbesondere zum Erstellen und Aktualisieren von Artikeln, einen Dev.to-API-Schlüssel. Der API-Schlüssel sollte als Umgebungsvariable DEV_TO_API_KEY festgelegt werden.
Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.
Available Tools
10 toolscreate_articleB
Create and publish a new article on Dev.to
Args:
title: The title of the article
body_markdown: The content of the article in markdown format
tags: Comma-separated list of tags (e.g., "python,tutorial,webdev")
published: Whether to publish immediately (True) or save as draft (False)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| body_markdown | Yes | ||
| tags | No | ||
| published | 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 mentions 'publish' behavior and the draft/published option, but lacks critical details: authentication requirements, rate limits, what happens on failure, whether articles are editable after publishing, or response format. For a write operation with zero annotation coverage, 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?
Perfectly structured and concise. The first sentence states the purpose, followed by a clear 'Args:' section with bullet-point explanations. Every sentence earns its place, with no redundant information. The formatting makes it easy to scan.
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?
Incomplete for a write operation with no annotations or output schema. While parameters are well-explained, missing critical context: authentication needs, error handling, response format, and behavioral constraints (e.g., tag limits, publishing consequences). The description doesn't compensate for the lack of structured metadata.
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 provides clear semantics for all 4 parameters: title (article title), body_markdown (content in markdown), tags (comma-separated list with example), and published (immediate vs draft). This adds substantial value beyond the bare schema, though it doesn't cover all edge cases (e.g., tag limits).
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 'Create and publish a new article on Dev.to' - a specific verb (create/publish) and resource (article). It distinguishes from siblings like get_article_by_id or update_article by focusing on creation rather than retrieval or modification. However, it doesn't explicitly contrast with all siblings (e.g., update_article could also involve publishing).
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. While the purpose implies creation, there's no mention of prerequisites (e.g., authentication needs), when not to use it (e.g., for updating existing articles), or explicit alternatives like update_article for modifications. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_article_by_idC
Get a specific article by ID from Dev.to
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify authentication requirements, rate limits, error handling, or what happens if the ID doesn't exist. For a tool with zero annotation coverage, 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?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple lookup tool and front-loads the essential 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?
For a tool with no annotations, no output schema, and 0% schema description coverage, the description is inadequate. It doesn't explain what data is returned, error conditions, or how this differs from similar sibling tools. The context demands more comprehensive guidance.
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 description mentions 'by ID' which aligns with the single 'id' parameter in the schema. However, with 0% schema description coverage, the description doesn't add any details about ID format, constraints, or examples. It provides basic mapping but minimal additional semantic 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 action ('Get') and resource ('a specific article by ID from Dev.to'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar siblings like 'get_article_details' or 'get_articles_by_tag', which likely also retrieve articles but through different mechanisms.
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 versus alternatives. With siblings like 'get_article_details', 'get_articles_by_tag', and 'search_articles', there's no indication whether this tool is for retrieving a single known article ID versus other lookup methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_article_detailsC
Get detailed information about a specific article
Args:
article_id: The ID of the article to retrieve
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves information, implying a read-only operation, but doesn't disclose behavioral traits like error handling, authentication needs, rate limits, or what 'detailed information' entails. This leaves significant gaps for an agent.
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 appropriately sized and front-loaded with the main purpose. The two-sentence structure is efficient, though the 'Args' section is redundant with the schema and could be omitted to improve 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 annotations and output schema, the description is incomplete. It doesn't explain what 'detailed information' includes, potential errors, or how it differs from similar sibling tools. For a retrieval tool in a context with multiple article-related tools, more context is needed.
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 description adds minimal semantics beyond the input schema: it names the parameter ('article_id') and states it's for retrieving an article. However, with 0% schema description coverage, it doesn't compensate by explaining the ID format, constraints, or examples. The baseline is 3 due to the single parameter being straightforward.
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 ('Get') and resource ('detailed information about a specific article'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_article_by_id' which likely serves a similar function, preventing a perfect score.
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 versus alternatives such as 'get_article_by_id' or 'search_articles'. It mentions retrieving a specific article but doesn't clarify prerequisites, exclusions, or comparative use cases with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articles_by_tagC
Get articles by tag from Dev.to
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes |
TDQS
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 states the action ('Get articles') but does not describe traits such as whether it's read-only, requires authentication, has rate limits, returns paginated results, or what format the output takes. This leaves significant gaps for a tool that likely interacts with an external API.
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, efficient sentence with zero waste. It is appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration, making it easy for an agent to parse quickly.
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 (interacting with Dev.to API), lack of annotations, no output schema, and low parameter coverage, the description is incomplete. It fails to address behavioral aspects, output format, error handling, or usage context, leaving the agent with insufficient information to invoke the tool effectively beyond basic purpose.
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 description mentions 'by tag', which aligns with the single parameter 'tag' in the schema. However, with 0% schema description coverage, the schema provides no details about the parameter. The description adds minimal semantic value by indicating the parameter's role but lacks specifics like tag format, case sensitivity, or examples, resulting in a baseline score due to incomplete compensation.
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 ('Get') and resource ('articles by tag from Dev.to'), making the purpose understandable. It distinguishes from some siblings like 'get_article_by_id' or 'get_articles_by_username' by specifying the tag-based filtering, though it doesn't explicitly differentiate from 'search_articles' which might also support tag filtering.
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 like 'search_articles' or 'get_latest_articles'. The description implies usage for tag-based retrieval but lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_articles_by_usernameC
Get articles written by a specific user
Args:
username: The username of the author
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
TDQS
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 states the action ('Get articles') but doesn't describe traits like whether it's read-only (implied by 'get'), what happens if the username doesn't exist (e.g., returns empty list or error), rate limits, authentication needs, or output format (e.g., list of articles with basic details). This leaves significant gaps for a tool with no annotation coverage.
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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a structured 'Args' section. There's no wasted text, and it efficiently covers the essentials. However, it could be slightly more concise by integrating the parameter explanation into the main sentence without losing clarity.
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 (simple retrieval with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'articles' entail (e.g., full content or summaries), how results are returned (e.g., paginated list), or error conditions. For a tool with no structured data to rely on, more context is needed to be fully helpful.
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 description adds minimal semantics beyond the input schema. It includes an 'Args' section that documents the single parameter 'username' with a brief explanation ('The username of the author'), which provides basic context. However, with 0% schema description coverage, this doesn't fully compensate—it lacks details like format constraints (e.g., case sensitivity) or examples. The baseline is 3 due to the single parameter, but the added value is limited.
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: 'Get articles written by a specific user.' It specifies the verb ('Get') and resource ('articles'), and distinguishes it from siblings like 'get_article_by_id' or 'get_articles_by_tag' by focusing on authorship. However, it doesn't explicitly differentiate from 'get_user_info' or 'search_articles' in terms of scope or output format.
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 versus alternatives. It doesn't mention prerequisites, such as whether the username must exist or be valid, or compare it to siblings like 'search_articles' for broader queries or 'get_user_info' for user metadata. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_articlesB
Get the latest articles from Dev.to
| 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 carries full burden. It states what the tool does but doesn't disclose behavioral traits such as pagination, rate limits, authentication needs, or what 'latest' means (e.g., time window, sorting). This is a significant gap for a tool with no structured safety hints.
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, efficient sentence that directly states the tool's purpose with zero waste. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what 'latest' entails, how results are returned, or how this differs from other article-fetching tools, leaving the agent with insufficient context for reliable use.
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 0 parameters, and schema description coverage is 100%, so there's no need for parameter documentation in the description. The baseline for 0 parameters is 4, as the description appropriately doesn't discuss non-existent parameters, though it could hint at implicit defaults (e.g., number of articles).
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 'Get' and the resource 'latest articles from Dev.to', making the purpose unambiguous. However, it doesn't differentiate from siblings like 'get_top_articles' or 'get_articles_by_tag' which also retrieve articles with different filters, so it doesn't reach the highest level of specificity.
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 versus alternatives. With siblings like 'get_top_articles' and 'get_articles_by_tag', there's no indication whether this tool is for chronological recency, popularity, or other criteria, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_articlesB
Get the top articles from Dev.to
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 states the action but doesn't reveal any behavioral traits such as rate limits, authentication requirements, pagination, or what 'top' entails (e.g., sorting criteria, number of articles returned). This leaves significant gaps for an agent to understand how the tool behaves.
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, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it highly concise and well-structured for quick understanding.
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 complexity of fetching 'top' articles (which could involve sorting, filtering, or ranking logic), the description is incomplete. With no annotations and no output schema, it fails to explain what 'top' means, how many articles are returned, or the format of the response. This leaves critical context missing for effective tool use.
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 parameters with 100% coverage, meaning there are no parameters to document. The description doesn't need to add parameter semantics, so it meets the baseline expectation. No additional value is required or provided beyond the schema.
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 'Get' and the resource 'top articles from Dev.to', making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'get_latest_articles' or 'get_articles_by_tag', which reduces clarity about what makes 'top' articles different.
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 versus alternatives like 'get_latest_articles' or 'search_articles'. There's no mention of what 'top' means (e.g., by views, likes, recency) or any context for selecting this tool over siblings, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_infoC
Get information about a Dev.to user
Args:
username: The username of the user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
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 states the tool retrieves information, implying a read-only operation, but doesn't disclose behavioral traits like authentication needs, rate limits, error conditions, or what specific information is returned. This is inadequate for a tool with zero annotation coverage.
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 appropriately sized and front-loaded with the purpose in the first sentence. The Args section is clear but could be more integrated. No wasted sentences, though it lacks depth.
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 annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain return values, error handling, or behavioral context needed for effective tool use. This is a simple tool but requires more guidance for the agent.
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 description adds minimal semantics: it mentions 'username' as the parameter in the Args section, but the schema already documents this parameter with 0% coverage. Since schema coverage is low, the description doesn't compensate by explaining format, constraints, or examples. Baseline 3 applies as it doesn't add significant value beyond the schema.
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: 'Get information about a Dev.to user' specifies the verb ('Get information') and resource ('Dev.to user'). It distinguishes from siblings like article-related tools, but doesn't explicitly differentiate from potential user-related siblings not present in the list.
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 is provided. The description doesn't mention prerequisites, context for usage, or comparison with other tools. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesB
Search for articles on Dev.to
Args:
query: Search term to find articles
page: Page number for pagination (default: 1)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| page | No |
TDQS
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. While it mentions pagination ('page number for pagination'), it doesn't describe important behavioral traits like rate limits, authentication requirements, response format, error conditions, or what happens with empty results. For a search tool with zero annotation coverage, 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?
The description is appropriately sized and front-loaded with the core purpose first. The two-sentence structure with clear parameter explanations is efficient, though the 'Args:' section formatting could be slightly cleaner. Every sentence earns its place by adding 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?
Given the tool's moderate complexity (search function with pagination), no annotations, and no output schema, the description is minimally adequate but has clear gaps. It covers the basic purpose and parameters but lacks crucial context about authentication, rate limits, response format, and when to use versus sibling tools. The absence of output schema means the description should ideally explain what the search returns.
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 description adds meaningful context for both parameters beyond what the schema provides. For 'query', it explains it's a 'Search term to find articles' (schema just says 'Query'). For 'page', it clarifies it's for 'pagination' and provides the default value (schema only shows default:1). With 0% schema description coverage, the description effectively compensates by explaining parameter purposes.
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: 'Search for articles on Dev.to' - a specific verb ('Search') and resource ('articles on Dev.to'). It distinguishes itself from siblings like 'get_articles_by_tag' or 'get_latest_articles' by being a general search function, though this differentiation isn't explicitly stated.
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. The description doesn't mention when this general search is preferable to more specific sibling tools like 'get_articles_by_tag' or 'get_latest_articles', nor does it provide any context about 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.
update_articleB
Update an existing article on Dev.to
Args:
article_id: The ID of the article to update
title: New title for the article (optional)
body_markdown: New content in markdown format (optional)
tags: New comma-separated list of tags (optional)
published: Change publish status (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes | ||
| title | No | ||
| body_markdown | No | ||
| tags | No | ||
| published | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it implies a mutation operation ('Update'), it doesn't mention permission requirements, whether changes are reversible, rate limits, or what happens to fields not specified. This leaves significant gaps for a tool that modifies content.
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 efficiently structured with a clear opening statement followed by a well-organized parameter list. Every sentence adds value without redundancy, and the formatting makes it easy to scan. It's appropriately sized for a tool with 5 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?
For a mutation tool with no annotations and no output schema, the description does well on parameter semantics but lacks important behavioral context. It doesn't explain what the tool returns, error conditions, or authentication requirements. The parameter explanations are strong, but other critical aspects are missing.
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 description provides clear explanations for all 5 parameters beyond their schema titles, including optionality notes and format hints (e.g., 'comma-separated list of tags', 'markdown format'). Since schema description coverage is 0%, this description fully compensates by adding meaningful semantic context for each parameter.
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 ('Update') and resource ('an existing article on Dev.to'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling 'create_article' beyond the 'existing' qualifier, which is why it doesn't reach a perfect score.
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 versus alternatives like 'create_article' or other article-related tools. It lacks context about prerequisites (e.g., authentication needs) or scenarios where this tool is appropriate versus other operations.
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.
10 tool updates
- First observed
create_article - First observed
get_article_by_id - First observed
get_article_details - First observed
get_articles_by_tag - First observed
get_articles_by_username - First observed
get_latest_articles - First observed
get_top_articles - First observed
get_user_info - First observed
search_articles - First observed
update_article
TDQS
Scored across 10 tools
Most tools have distinct purposes targeting different operations (create, get, update, search), but there is some ambiguity between get_article_by_id and get_article_details which appear to serve similar retrieval functions. The other tools are clearly differentiated by their target data or action.
All tools follow a consistent verb_noun pattern with snake_case throughout (e.g., create_article, get_articles_by_tag, update_article). The naming is predictable and follows a clear convention without any deviations in style or structure.
With 10 tools, this server is well-scoped for managing Dev.to content, covering core operations like CRUD for articles, user info retrieval, and various query methods. Each tool serves a specific purpose without bloat, making the count appropriate for the domain.
The toolset provides comprehensive coverage for article management (create, read, update, search) and user information, but lacks delete functionality for articles, which is a minor gap. Core workflows are supported, and agents can likely work around the missing delete operation.
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables AI assistants like Claude to interact with Substack newsletters, allowing for post retrieval, content searching, and author information access through a standardized interface.MIT
- AlicenseNot gradedqualityDmaintenanceThis is a complete MCP (Model Context Protocol) server that implements a articles of dev.to with robust validation using TypeScript and Zod. The server integrates directly with Cursor, allowing you search articles on dev.to.3 npmMIT
- AlicenseAqualityCmaintenanceA production-ready MCP server for the DEV Community (Forem) API, enabling management of articles, comments, users, tags, organizations, reading list, and followers through any MCP-compatible client.1619 npm5MIT
- FlicenseNot gradedqualityDmaintenanceProvides MCP tools to interact with Dev.to, enabling searching, browsing, and publishing articles through natural language.-