devto-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEVTO_API_KEY | Yes | Your Dev.to API key. Required. | |
| MCP_READ_ONLY | No | Refuse anything that changes state. Set to 1 to enable. | |
| DEVTO_BASE_URL | No | Point at a self-hosted Forem instance. | https://dev.to |
| MCP_NO_DESTRUCTIVE | No | Allow writes, refuse unpublishing. Set to 1 to enable. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| devto_list_operationsA | Browse the 139 operations in the Forem/Dev.to API — 49 reachable through this server and 90 excluded, each with the reason why. Call this first to find the operation id for devto_call. |
| devto_callA | Call any operation listed by devto_list_operations. Use this for anything the purpose-built tools below do not cover. |
| devto_get_meB | The authenticated user's own profile. |
| devto_list_my_articlesA | List your own articles. Defaults to ALL of them: /articles/me returns published articles only, so a drafts-only account looks empty through it. |
| devto_create_articleA | Create an article. Creates a DRAFT unless you explicitly pass published: true — publishing is a real, immediate, public action and should be a decision rather than a default. |
| devto_update_articleA | Edit an existing article. Omitted fields are left alone; the publish state is never changed here — use devto_publish_article or devto_unpublish_article for that. |
| devto_publish_articleA | Publish an existing draft. This makes it publicly visible immediately. Kept as its own tool rather than a field on devto_update_article so that editing a typo can never change an article's publish state by accident. |
| devto_unpublish_articleA | Take a published article down. It becomes a draft again rather than being deleted — Forem has no delete-article endpoint at all, so nothing here can destroy an article. |
| devto_get_analyticsA | Author analytics. All eight reports Forem publishes are available; totals and past_day need no date range. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
The purpose-built tools each target a distinct action/resource: profile, own articles, create/update/publish/unpublish, and analytics. devto_call is explicitly scoped to operations not covered by the purpose-built tools, so its overlap is intentional and clear.
All tools share the devto_ prefix and use snake_case, mostly following a verb_noun pattern. The only notable deviation is devto_call, which is a verb without an explicit object, but this is minor and still predictable in context.
9 tools is a well-scoped set: seven focused article/profile/analytics operations plus a discovery/call pair that prevents the surface from needing dozens of purpose-built tools. Each tool earns its place.
The set covers the core article lifecycle—create, list, update, publish, unpublish—plus profile and analytics, and explicitly documents why delete is not available. The devto_list_operations/devto_call pair also provides access to all other reachable Forem API operations, so no major gaps remain.