Thanks to visit codestin.com
Credit goes to github.com

Skip to content

feat: /docs/openapi.json to include Tools Array #256

@daryltucker

Description

@daryltucker

Check Existing Issues

  • I have searched the existing issues and discussions.

Problem Description

When you GET openapi.json on the root, it's such a tease!

{
  "openapi": "3.1.0",
  "info": {
    "title": "MCP OpenAPI Proxy",
    "description": "Automatically generated API from MCP Tool Schemas\n\n- **available tools**:\n    - [memory](/memory/docs)\n    - [time](/time/docs)\n    - [fetch](/fetch/docs)\n    - [sequential-thinking](/sequential-thinking/docs)\n    - [MongoDB](/MongoDB/docs)\n    - [git-mcp-docs](/git-mcp-docs/docs)\n    - [awslabs.aws-documentation-mcp-server](/awslabs.aws-documentation-mcp-server/docs)\n    - [json-mcp-server](/json-mcp-server/docs)",
    "version": "1.0"
  },
  "paths": {}
}

Desired Solution you'd like

{
  "openapi": "3.1.0",
  "info": {
    "title": "MCP OpenAPI Proxy",
    "description": "Automatically generated API from MCP Tool Schemas\n\n- **available tools**:\n    - [memory](/memory/docs)\n    - [time](/time/docs)\n    - [fetch](/fetch/docs)\n    - [sequential-thinking](/sequential-thinking/docs)\n    - [MongoDB](/MongoDB/docs)\n    - [git-mcp-docs](/git-mcp-docs/docs)\n    - [awslabs.aws-documentation-mcp-server](/awslabs.aws-documentation-mcp-server/docs)\n    - [json-mcp-server](/json-mcp-server/docs)",
    "tools": {
      "time": "/time/docs",
      "memory": "/memory/docs",
      ...
      "json-mcp-server": "/json-mcp-server/docs",
    }
    "version": "1.0"
  },
  "paths": {}
}

Alternatives Considered

I can't imagine this isn't already standardized somewhere, or available somehow, but I haven't been able to find the information to make this happen. If mcpo already has the ability to hand out a list (that can be properly iterated over), please point me in the right direction.

Additional Context

The idea is that I want to set up an MCP Server (ie: mcpo), and be able to do auto-discovery on the available tools.
The first step in that process would be to determine which tools are available, and how to interact with them (ie: Name and Documentation Location).

  1. This would help allow Open WebUI in allowing easier adding of MCP Servers, and not having to add each endpoint individually.
  2. This would allow non-Open WebUI 'clients' to leverage the power and ease-of-use of mcpo.
  3. This would allow users using clients that do not support auto-discovery, to use tooling against the server to auto-generate available tools (ie: Claude-style .json).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions