Skip to content

v1.2.0: Rest openapi (#16)

Choose a tag to compare

@rawveg rawveg released this 07 May 19:25
· 8 commits to main since this release
f21b4d2

Release Notes: Dev.to MCP Server – Major Feature Release

🚀 Major New Features

  • OpenAPI-Driven REST API

    • First implementation of OpenAPI tooling for the Dev.to MCP server.
    • All REST endpoints are now fully described and documented via OpenAPI, enabling:
      • Auto-generated interactive docs (/docs)
      • Machine-readable schema for LLMs, automation tools, and client generation
      • Consistent, discoverable, and self-documenting API surface
  • RESTful Endpoints for All Core Operations

    • Endpoints for reading, creating, updating, publishing, unpublishing, and searching articles, as well as user profile access.
    • All endpoints follow RESTful conventions and are documented in the OpenAPI schema.
  • MCP Tool Registration

    • All major Dev.to actions are available as MCP tools, with prompt definitions and OpenAPI integration.
    • Tools include: browse/search articles, get by ID/title, create, update (by ID and by title), publish/unpublish (by ID and by title), and more.

✨ Enhancements & Improvements

  • Dual-Mode Update Endpoint:
    /update_article supports both PATCH (RESTful) and POST (for LLM/tool compatibility).

  • Update by Title:
    New endpoint and tool for updating articles by title, with full OpenAPI and prompt support.

  • Explicit API Key Handling:
    All endpoints and internal helpers require explicit API key passing.

    • 401 errors are returned and logged if missing.
  • Comprehensive OpenAPI Schema:

    • All endpoints have detailed summaries, descriptions, and response examples (success and failure).
    • All Pydantic models and parameters use the new examples= syntax.
    • One-shot examples and minimal, action-oriented responses for state-changing endpoints.
  • README & Documentation:

    • All new tools and endpoints are documented in the README, including feature tables and usage examples.

🐛 Bug Fixes & Robustness

  • API Key Propagation:

    • Fixed all flows to ensure the API key is always passed and required.
    • Authentication errors are now surfaced clearly to clients and LLMs.
  • Correct HTTP Methods:

    • PATCH is the default for updates, with POST as a temporary compatibility fallback.
  • Consistent Tag Handling:

    • Tags are sanitized, lowercased, and omitted if empty.
  • Cleaner Error Handling:

    • Dev.to API errors and authentication issues are surfaced with explicit messages and status codes.
  • Logging Improvements:

    • Added logging for missing API keys and other critical errors.

🧠 LLM/Tool-Use Optimizations

  • Minimal, Explicit State Change Responses:

    • State-changing endpoints (publish/unpublish) return minimal, explicit responses for LLM reliability.
    • OpenAPI examples for both success and failure to help LLMs pattern match.
  • Workarounds for LLM Quirks:

    • POST support for update endpoints as a temporary workaround for LLMs/tools that ignore PATCH.

🛠️ Developer Experience

  • Interactive API Docs:

    • /docs endpoint provides a live, interactive OpenAPI UI for testing and exploration.
  • Codebase Consistency:

    • All prompt, tool, and endpoint registrations are explicit and consistent.
    • Deprecated patterns (e.g., example=) have been fully replaced.

⚠️ Known Issues & Future Work

  • LLM Context Handling:
    LLMs may still make “smart” guesses based on prior context, which can lead to unexpected tool invocations. Further prompt engineering and OpenAPI fine-tuning may be required for perfect reliability.

  • Temporary POST Support:
    POST support for /update_article is a temporary workaround and should be removed once LLM/tooling support PATCH correctly.

  • Refactoring:
    What started out as a single small script has now evolved into a monolith. For my own piece of mind, maintainability and ongoing work the next release planned will be a bif refactor, separation of concerns, simplifying the tool layer to allow for drop-in tool extensibility and more. A general overhaul to make it neat and tidy. For now enjoy the dual use of SSE and REST with OpenAPI Tool Server. I have been using Open WebUI to test the development of the tool server, and yes it works well and is fairly robust, just needs some fine tuning around prompts and perhaps more documentation examples/one shots for LLM comprehension.


Upgrade Notes

  • This is a major release introducing OpenAPI-driven REST endpoints and LLM/MCP tool integration.
  • If you are integrating with LLMs or automation tools, ensure they are configured to pass the API key as required.

Thank you for helping shape this release! This is the first full-featured, OpenAPI-powered, LLM-friendly, and self-hostable Dev.to MCP server.


Let me know if you want this in a different format (e.g., CHANGELOG, GitHub release, etc.) or need a shorter/longer version!