Skip to main content
Glama
devto-mcp-server

devto-mcp-server

devto-mcp-server

MCP server providing tools to search, retrieve, create, and update articles via the dev.to API.

For agent planning workflows, use the umbrella server article-research-mcp (article_research in Dynamic MCP catalogue) — dedupe, ranked briefs, methodology, and save_research_note.

Agent docs: CONTEXT.md, HERMES.md, docs/adr/

Tools

  • search_devto_posts: Search dev.to articles by query, with optional tag, limit, etc.

  • get_devto_article: Fetch full article by ID or slug.

  • search_by_tech: Search articles by technology/tag (e.g., python, ai, mcp).

  • create_devto_article: Create a draft or published dev.to article. Uses DEVTO_API_KEY unless api_key is passed.

  • update_devto_article: Update fields on an existing dev.to article. Uses DEVTO_API_KEY unless api_key is passed.

Related MCP server: mcp-devto

Auth for write tools

Create a DEV API key at https://dev.to/settings/extensions, then set:

export DEVTO_API_KEY=your_key_here

For local development, you can also put the key in the repo-local .env file:

DEVTO_API_KEY=your_key_here

.env is ignored by git; .env.example documents the expected variable.

create_devto_article defaults published to false so new API-created posts are drafts unless explicitly published.

Usage with dynamic-mcp-proxy-server

Add to catalogue.json:

{
  "name": "devto",
  "description": "dev.to MCP server — search and read technical articles, tutorials, and posts",
  "command": "uvx devto-mcp-server",
  "tags": ["devto", "articles", "blog", "tech", "research", "tutorials"],
  "tech_stack": ["any"],
  "runtime": "stdio",
  "env_vars": []
}

Run directly:

uv run devto-mcp-server

Or with uvx after publishing (for now local: uvx --from . devto-mcp-server)

Configuration for Claude Desktop

Add the following to your claude_desktop_config.json (located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "devto": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/devto-mcp-server",
        "run",
        "devto-mcp-server"
      ]
    }
  }
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

5 tools
create_devto_articleA

Create a dev.to article or draft using the authenticated DEV API.

Args: title: Article title. body_markdown: Article body in markdown. published: Publish immediately when true. Defaults to false for safety. tags: Comma-separated tags, e.g. "python,ai,mcp". description: Short article description. canonical_url: Original/canonical URL when cross-posting. series: Optional DEV series name. main_image: Optional main image URL. organization_id: Optional DEV organization id. api_key: Optional DEV API key. If omitted, DEVTO_API_KEY is used.

Returns: The created article object from dev.to.

Inputs: title (required), body_markdown (required), tags, series, +6 more. Returns: result

get_devto_articleA

Retrieve a full dev.to article by its ID.

Args: article_id: The numeric ID of the article.

Returns: Full article object including body_markdown, tags, reactions, etc.

Inputs: article_id (required). Returns: result

search_by_techA

Search articles by technology/tag. Convenience wrapper around search.

Args: tech: Technology or tag (e.g. 'python', 'fastapi', 'mcp', 'ai'). per_page: Number of results. top_days: Return top articles from last N days (7, 30, etc.). If None, does text search on tag.

Returns: List of matching articles.

Inputs: tech (required), per_page, top_days. Returns: result

search_devto_postsA

Search dev.to articles.

Args: query: Search term (searches title, body, tags, user). tag: Optional tag filter (e.g. 'python', 'ai'). per_page: Number of results (max 30). page: Pagination page. top: If set (e.g. 7 for past week), returns top articles instead of search.

Returns: List of article summaries with id, title, url, tags, etc.

Inputs: query (required), tag, top, page, +1 more. Returns: result

update_devto_articleA

Update an existing dev.to article by numeric article id.

Only fields provided as non-null arguments are sent. Pass api_key or set DEVTO_API_KEY.

Inputs: article_id (required), tags, title, series, +7 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 5 tools

    Disambiguation2/5

    Tools `search_devto_posts` and `search_by_tech` both search articles with overlapping functionality (tag filtering, top results), causing ambiguity. An agent may struggle to choose the appropriate one.

    Naming Consistency4/5

    Most tools follow a `verb_noun` pattern (`search_devto_posts`, `get_devto_article`, etc.), but `search_by_tech` breaks the pattern with a preposition, and inconsistent pluralization (`posts` vs `article`).

    Tool Count5/5

    With 5 tools covering search, retrieval, creation, and update, the count is well-scoped for a dev.to article management server, neither too sparse nor too heavy.

    Completeness4/5

    Basic CRUD operations are present except deletion, and search covers multiple query patterns. Minor gap in missing delete or listing all user articles, but core workflows are covered.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers