Skip to main content
Glama

OpenAPI to MCP Server

A Model Context Protocol (MCP) server that converts OpenAPI specifications to MCP tools, providing access to 3DSpace Engineering Web Services APIs.

Quick Start

Prerequisites

  • Python 3.8+

  • Install dependencies: pip install -r requirements.txt

Start the Server

SSE Mode:

python mcp_server.py --sse

STDIO Mode:

python mcp_server.py --stdio

Related MCP server: OpenAPI to MCP Server

MCP Client Configuration

Configure your MCP client (Cursor, Claude, or custom client) with these JSON formats:

SSE Configuration

{
  "mcpServers": {
    "3dspace-mcp-server": {
      "url": "http://localhost:8000/sse"
    }
  }
}

STDIO Configuration

{
  "mcpServers": {
    "3dspace-mcp-server": {
      "command": "python",
      "args": ["mcp_server.py", "--stdio"],
      "env": {}
    }
  }
}

How It Works

The MCP server reads all OpenAPI format JSON files from the swagger_files/ folder and converts them into MCP tools. Currently includes 45+ 3DSpace service specifications covering:

  • Engineering Items (dseng)

  • Manufacturing Items (dsmfg)

  • Change Management (dslc_*)

  • Project Management (dsproject)

  • Document Management (dsdoc, dscdoc)

  • Requirements Management (dsreq_*)

  • And many more specialized services

Available Tools

The server provides these core MCP tools via list_available_tools:

šŸ”§ Core API Tools

  • api_request - Execute API operations using OpenAPI operation IDs

  • generic_api_call - Make direct HTTP calls to any API endpoint

  • search_operations - Find relevant API operations by search query

šŸ” Authentication & Security

  • set_3dspace_url - Configure the 3DSpace base URL for API calls

  • get_security_context - Retrieve available security contexts (Role.Organization.CollabSpace)

  • get_csrf_token - Get CSRF tokens required for state-changing operations

šŸ“‹ Discovery Tools

  • list_available_tools - Show all available MCP tools and their descriptions

Testing with MCP Clients

For optimal results when testing in MCP clients, use the included prompt_3dspace.md file as a system prompt. This file provides:

  • Interaction Guidelines - Step-by-step workflow for API operations

  • Authentication Handling - Proper credential and token management

  • Parameter Precision - Exact parameter naming requirements (including $ prefixes)

  • Security Best Practices - Safe handling of sensitive information

  • Error Prevention - Common pitfalls and how to avoid them

The prompt ensures the AI follows proper protocols for:

  • 3DSpace URL configuration

  • Basic Authentication setup

  • Security context selection

  • CSRF token handling for state changes

  • Proper JSON request body formatting

OpenAPI Path Normalization

Before using the MCP server, run the path normalization utility to ensure consistent server URLs:

python update_openapi_paths.py

What it does:

  • Extracts base paths from server URLs containing {3DSpace} placeholders

  • Prefixes all API paths with the extracted base path

  • Updates server URLs to contain only the {3DSpace} base URL

  • Ensures consistent URL structure across all OpenAPI files

Example transformation:

// Before:
"servers": [{"url": "{3DSpace}/resources/v1/dsmfg"}],
"paths": {"/dsmfg:MfgItem": {...}}

// After:
"servers": [{"url": "{3DSpace}"}],
"paths": {"/resources/v1/dsmfg/dsmfg:MfgItem": {...}}

This ensures all API calls use the same 3DSpace base URL with properly prefixed paths.

Project Structure

ā”œā”€ā”€ mcp_server.py           # Main MCP server implementation
ā”œā”€ā”€ update_openapi_paths.py # OpenAPI path normalization utility
ā”œā”€ā”€ swagger_files/          # OpenAPI specification files (45+ services)
ā”œā”€ā”€ prompt_3dspace.md       # AI interaction guidelines for clients
ā”œā”€ā”€ requirements.txt        # Python dependencies
└── README.md              # This file

Usage Example

  1. Normalize OpenAPI paths: python update_openapi_paths.py

  2. Start the server: python mcp_server.py --sse

  3. Configure your MCP client with the JSON configuration above

  4. Load prompt_3dspace.md as system prompt in your client

  5. Begin interacting with 3DSpace APIs through natural language

The AI will guide you through authentication, parameter collection, and API execution following the established workflow patterns.

F
license - not found
-
quality - not tested
F
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    Converts OpenAPI specifications into MCP services with HTTP header passthrough support. Enables interaction with any OpenAPI-compliant service through natural language by dynamically transforming API documentation into MCP tools.
    Last updated
  • A
    license
    A
    quality
    C
    maintenance
    Converts any OpenAPI/REST API into MCP tools with dynamic server switching, variable substitution, and runtime configuration. Enables seamless interaction with multiple API environments through natural language without pre-configuration.
    Last updated
    12
    5
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Converts any OpenAPI/Swagger API specification into MCP tools that AI assistants can use to interact with the API.
    Last updated
    32
    7
    MIT

View all related MCP servers

Related MCP Connectors

  • 34 production API tools over one hosted MCP endpoint.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • Connect any two APIs and keep them in sync — 45 MCP tools with shadow previews and diagnostics.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pgupta1795/3dspace-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server