Skip to main content
Glama
README.md
# Dev.to MCP Server

This repository contains a Model Context Protocol server implementation for Dev.to that allows AI assistants to access and interact with Dev.to content.

<a href="https://glama.ai/mcp/servers/@Arindam200/devto-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@Arindam200/devto-mcp/badge" alt="Dev.to Server MCP server" />
</a>

![image](./Demo.png)

## What is MCP?

The Model Context Protocol (MCP) is a standard for enabling AI assistants to interface with external services, tools, and data sources. This server implements the MCP specification to provide access to Dev.to content. To know more about MCP, Check this [video](https://www.youtube.com/watch?v=BwB1Jcw8Z-8)

## Features

- Fetch latest and trending articles from Dev.to
- Search for articles by various criteria
- Get detailed information about specific articles
- Get Detailed information about a User.
- Access articles by tag or username
- Create and publish new articles to Dev.to
- Update existing articles
- Caching mechanism to improve performance and reduce API calls



## Installation

1. Clone this repository
```bash
git clone https://github.com/Arindam200/devto-mcp.git
cd devto-mcp
```

2. **Connect to the MCP server**

   Copy the below json with the appropriate {{PATH}} values:

   ```json
   {
    "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.
        }
      }
    }
   }
   ```
   You can obtain a Dev.to API key from your [Dev.to settings page](https://dev.to/settings/extensions).

   For **Claude**, save this as `claude_desktop_config.json` in your Claude Desktop configuration directory at:

   ```
   ~/Library/Application Support/Claude/claude_desktop_config.json
   ```

   For **Cursor**, save this as `mcp.json` in your Cursor configuration directory at:

   ```
   ~/.cursor/mcp.json
   ```

3. **Restart Claude Desktop / Cursor**

   Open Claude Desktop and you should now see Devto as an available integration.

   Or restart Cursor.

### Available Tools

The server provides the following tools:

- `get_latest_articles()` - Get the latest articles from Dev.to
- `get_top_articles()` - Get the most popular articles from Dev.to
- `get_articles_by_tag(tag)` - Get articles by tag
- `get_article_by_id(id)` - Get a specific article by ID
- `search_articles(query, page=1)` - Search for articles by keywords in title/description
- `get_article_details(article_id)` - Get full content and metadata for a specific article
- `get_articles_by_username(username)` - Get articles written by a specific author
- `create_article(title, body_markdown, tags, published)` - Create and publish a new article
- `update_article(article_id, title, body_markdown, tags, published)` - Update an existing article

## Example Queries

Here are some examples of what you can ask an AI assistant connected to this server:

- "Find articles about Python on Dev.to"
- "Show me the latest Dev.to articles"
- "Get details for article 1234"
- "What articles has user 'ben' written?"
- "Search for articles about machine learning"
- "Create a new article titled 'Getting Started with Python'"
- "Update my article with ID 5678 to fix a typo in the content"

## Authentication

The server requires a Dev.to API key for certain operations, particularly for creating and updating articles. The API key should be set as an environment variable `DEV_TO_API_KEY`.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

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

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues