# Dev.to/Forem MCP MCP

> Dev.to (Forem) MCP connects your AI agent to manage technical content and community profiles across Dev.to and Forem. You can list existing articles, draft new posts with markdown support, update drafts, or check user details directly from chat. It handles the whole article lifecycle, letting you manage everything from drafting code examples to publishing full-stack tutorials without ever leaving your IDE.

## Overview
- **Category:** developer-tools
- **Price:** Free
- **Tags:** blogging, forem, dev-to, article-management, community-tools

## Description

This MCP lets you handle all of your technical writing and community interactions through natural conversation. You don't have to switch tabs or copy a URL into a separate CMS dashboard just to check an article status. Your agent can list published work, search for specific posts by tags, or even update existing content drafts using full markdown support—all within your chat environment. This kind of direct access saves time and keeps your focus where it belongs: writing code. It's one thing to write a great tutorial; it’s another thing entirely to distribute it correctly. By connecting this MCP via Vinkius, you give your agent the necessary tools to manage article drafts, inspect user profiles, and check organization membership right alongside your coding workflow.

## Tools

### create_article
Drafts and publishes an entirely new technical article on Dev.to/Forem.

### get_article_by_id
Retrieves the full content of a single published article using its unique ID number.

### get_article_by_path
Fetches an article's data when you know the user and the clean slug (URL path).

### get_me
Pulls your own authenticated profile details, like username and full name.

### get_user
Retrieves the profile information for any user by their unique ID or handle.

### list_articles
Lists all articles that have been published and are currently live on the platform.

### list_my_articles
Shows a list of every article associated with your own account (drafts and published). 

### list_org_articles
Gets a listing of all articles published by an entire organization or group.

### list_org_users
Lists the usernames and profiles of people who belong to a specific organization.

### list_videos
Retrieves articles that contain embedded video content, making them easy to find.

### unpublish_article
Takes a specific article and takes it offline immediately (requires permissions).

### update_article
Replaces the content of an existing article with new text or markdown.

## Prompt Examples

**Prompt:** 
```
List the top 5 articles about 'javascript' on Dev.to.
```

**Response:** 
```
I've retrieved the top articles for #javascript. Here are the most popular ones: 'Understanding Closures', 'ES2024 Features', 'Async/Await Guide'...
```

**Prompt:** 
```
Create a new draft article titled 'My MCP Guide' with the content 'This is a test'.
```

**Response:** 
```
Successfully created your draft 'My MCP Guide' (ID: 1829304). You can find it in your unpublished articles.
```

**Prompt:** 
```
Show me my account details and API status.
```

**Response:** 
```
I've fetched your profile using `get_me`. You are logged in as 'dev_writer_22' with ID 55432. Your API key is active and authorized.
```

## Capabilities

### Create New Content
Drafts a brand new technical article or post on Dev.to/Forem directly through conversation.

### Retrieve Specific Articles
Fetches the full details of an article using either its unique ID or its web path (username and slug).

### Update Existing Posts
Modifies the content of a published or draft article, supporting rich markdown formatting.

### Manage User Data
Retrieves details about yourself or any other user by their username or ID.

### Monitor Organization Activity
Lists articles and members associated with a specific community group or organization.

## Use Cases

### The Quarterly Content Audit
A community manager needs to prove that all departmental articles are up-to-date. Instead of clicking through 50 profiles, they ask their agent to `list_org_articles` and then loop through the results to check if any article hasn't been touched in six months.

### The Broken Link Fix
A developer finds an old piece of content with a broken reference. They use `get_article_by_path` to pull the current content, fix the markdown references, and then immediately call `update_article` without needing to open the CMS editor.

### Profiling New Contributors
A product lead wants to vet a potential collaborator. They use `get_user` to check basic credentials, then run `list_my_articles` for that user to see their publishing history and quality of work.

### Cross-Platform Content Promotion
A writer finishes a tutorial draft. They use `create_article`, publish it, and immediately ask the agent to list all articles with videos using `list_videos` so they can promote the new piece on social media.

## Benefits

- Draft and publish content without leaving your IDE. You can use `create_article` to draft a full piece, then immediately use `update_article` if you need to fix a citation or adjust the tone before publishing.
- Quickly audit user activity. Need to know who belongs to a group? Use `list_org_users`. Want to see what they posted? Run `list_org_articles` to get an instant overview of organizational content.
- Deep dive into specific content. Don't rely on searching the frontend. You can fetch a single article using either `get_article_by_id` or `get_article_by_path`, which is much faster for automated checks.
- Full lifecycle control. If an article needs to come down temporarily, you don't have to manually delete it; just call `unpublish_article` and take it offline instantly.
- Understand your own footprint. Use `list_my_articles` to see every piece of content associated with your account—both published work and drafts waiting for a final pass.

## How It Works

The bottom line is that it routes complex publishing tasks through simple conversation commands.

1. First, subscribe to this MCP on Vinkius and input your Dev.to/Forem API key.
2. Next, tell your AI agent what you need—for example, 'List all articles published by the Acme Corp organization.'
3. Finally, the agent executes the necessary tool calls and returns a structured list of content or user data into your chat.

## Frequently Asked Questions

**How do I use the list_my_articles tool?**
The `list_my_articles` tool shows you every article associated with your account, whether they're drafts or published. This is useful for seeing what content you own but haven't finalized yet.

**Can I find an article using only its name?**
No, the system requires more specific identifiers. You must use either `get_article_by_id` (the unique ID number) or `get_article_by_path` (the username and clean slug).

**What if I want to take down an article quickly?**
Use the `unpublish_article` tool. It instantly removes the article from public view, which is necessary for moderation or temporary takedowns.

**Does get_user need a username or just an ID?**
The `get_user` tool accepts either a user's unique ID number or their handle (username). You only need to provide one of those two pieces of information.

**If I try to use the `update_article` tool, what level of permissions do I need?**
You must have write access assigned to your API key. The system checks for publishing rights before running the update. If you only have read permission, the call will fail with an authorization error.

**How does using `list_org_articles` differ from checking my own posts with `list_my_articles`?**
When you use `list_my_articles`, you only see content published by your specific user account. However, `list_org_articles` pulls all published content associated with the organization's profile, giving you a broader view of group contributions.

**What information do I need to provide when calling `create_article`?**
You must supply at least a title and the main article body. The content needs to be in standard markdown format for proper rendering on Dev.to or Forem.

**What happens if I use `list_articles` and there are thousands of results?**
The tool handles large datasets through pagination. You'll need to specify the starting point and limit for your query, rather than asking for everything at once.

**Can I publish a new post directly from the chat?**
Yes! Use the `create_article` tool by providing a title and the markdown content. You can also set the `published` status to true or false for drafts.

**How do I see my own drafts and published posts?**
You can use the `list_my_articles` tool. It allows you to filter by type, such as 'all', 'published', or 'unpublished' (drafts).

**Can I look up another user's profile information?**
Yes, use the `get_user` tool with either their unique User ID or their username to retrieve their public profile details.