Dev.to
HTTP-SSEMCP server for accessing dev.to public API without authentication
MCP server for accessing dev.to public API without authentication
A remote Model Context Protocol (MCP) server for interacting with the dev.to public API without requiring authentication.
This MCP server provides access to the following dev.to public API endpoints:
If you want to install and build from source using npm:
npm install npm run build
The server runs as a remote HTTP server on port 3000 (or the PORT environment variable) and can be used with any MCP-compatible client.
npm start
The server will be available at http://localhost:3000 for MCP connections.
# Build the project npm run build # Watch mode for development npm run dev # Linting npm run lint npm run lint:fix # Formatting npm run format npm run format:check
Pull and run the pre-built Docker image:
# Pull the image docker pull docker.io/nickytonline/dev-to-mcp:latest # Run it docker run -d \ --name dev-to-mcp \ -e NODE_ENV=production \ -e PORT=3000 \ -p 3000:3000 \ --restart unless-stopped \ docker.io/nickytonline/dev-to-mcp:latest
Once it's up, check health status via:
curl -fsS http://127.0.0.1:3000/mcp
The server will be available at http://localhost:3000/mcp for MCP connections.
Build and run the MCP server using Docker:
# Build the Docker image docker build -t dev-to-mcp . # Run the container docker run -p 3000:3000 dev-to-mcp
Using the pre-built image with Docker Compose:
services: dev-to-mcp: image: docker.io/nickytonline/dev-to-mcp:latest container_name: dev-to-mcp restart: unless-stopped environment: NODE_ENV: production PORT: 3000 networks: - main healthcheck: # Uses $PORT at runtime; defaults to 3000 if not set test: [ "CMD-SHELL", "curl -fsS http://127.0.0.1:${PORT:-3000}/mcp >/dev/null || exit 1", ] interval: 15s timeout: 5s retries: 5 start_period: 30s networks: main: {}
For development with a local build, you can also use Docker Compose:
# docker-compose.yml version: "3.8" services: dev-to-mcp: build: . ports: - "3000:3000" environment: - PORT=3000
docker-compose up --build
All endpoints use the public dev.to API (https://dev.to/api) and do not require authentication.
Get articles with optional filtering:
username - Filter by author usernametag - Filter by tagtop - Top articles (1, 7, 30, or infinity days)page - Pagination page (default: 1)per_page - Articles per page (default: 30, max: 1000)state - Filter by state (fresh, rising, all)Get a specific article:
id - Article IDpath - Article path (e.g., "username/article-slug")Get user information:
id - User IDusername - UsernameGet popular tags:
page - Pagination page (default: 1)per_page - Tags per page (default: 10, max: 1000)Get comments for an article:
article_id - Article ID (required)Search articles:
q - Search query (required)page - Pagination page (default: 1)per_page - Articles per page (default: 30, max: 1000)search_fields - Fields to search (title, body_text, tag_list)MIT