Skip to main content

MCP server for exploring Omelet's Routing Engine and iNavi's Maps API to help build a TMS

Project description

TMS Development Wizard MCP Server

English ํ•œ๊ตญ์–ด


๐ŸŽฏ Overview

๐ŸššTMS Development Wizard๐Ÿง™โ€โ™‚๏ธ helps you build a TMS(Transport Management System) by providing you with the tools to explore Omelet's Routing Engine and iNavi's Maps API. No more juggling between multiple API docs - vibe your way to your own customized TMS.

Perfect for:

  • ๐Ÿš€ Rapid API Exploration - Quickly discover what's possible without reading through walls of documentation
  • ๐Ÿงช Prototyping & Testing - Spin up test implementations in minutes, not hours
  • ๐Ÿ—๏ธ Production Systems - Build complex TMS workflows with guided API integration patterns

โœจ Features

  • ๐Ÿš€ Multi-Provider Support - Unified access to both Omelet Routing Engine and iNavi Maps API documentation
  • ๐Ÿ“š Endpoint Discovery - Browse and filter API endpoints by provider with detailed overviews (list_endpoints, get_endpoint_overview)
  • ๐Ÿงฉ Integration Patterns - Pre-built workflow patterns with agentic coding guidelines for common TMS use cases (list_integration_patterns, get_integration_pattern)
  • ๐Ÿ” Schema Explorer - Inspect request/response schemas for any endpoint and HTTP status code (get_request_body_schema, get_response_schema)
  • ๐Ÿ’ก Example Library - Access real-world API request/response examples extracted from OpenAPI specs (list_examples, get_example)
  • ๐Ÿ› ๏ธ Troubleshooting Guides - Access diagnostic guides for common integration and runtime issues (list_troubleshooting_guides, get_troubleshooting_guide)

Note: API keys from Omelet and iNavi aren't required to install this MCP server. However, it is recommended you prepare them in advance for a realtime test-enabled vibe coding experience, enabling proper debugging.


๐Ÿš€ Quick Start

MCP Server Installation

Prerequisites: Ensure you have uv installed.

Cursor

Navigate to your MCP settings (Cursor > Settings > Cursor Settings > Tools & MCP) and add:

{
   "mcpServers": {
      "TMS Development Wizard": {
         "command": "uvx",
         "args": ["tms-mcp"],
         "env": {
            "INAVI_API_KEY": "your_inavi_api_key",
            "OMELET_API_KEY": "your_omelet_api_key"
         }
      }
   }
}
Claude Desktop

โš ๏ธ Claude Desktop cannot directly send requests to API servers. Use Claude Desktop only for exploring API endpoints and responses.

  1. Check uvx installation path via terminal.

    • For MacOS/Linux: which uvx
    • For Windows: where uvx
  2. Open MCP settings JSON file (Claude > Settings > Developer > Edit Config), and add:

{
   "mcpServers": {
      "TMS Development Wizard": {
         "command": "[uvx installation path from step 1]",
         "args": ["tms-mcp"],
         "env": {
            "INAVI_API_KEY": "your_inavi_api_key",
            "OMELET_API_KEY": "your_omelet_api_key"
         }
      }
   }
}
  1. Save the JSON file and restart Claude Desktop.
Claude Code

Open a terminal at the project root and run:

claude mcp add TMS-Development-Wizard uvx tms-mcp --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key
Codex CLI

Open a terminal at the project root and run:

codex mcp add TMS-Development-Wizard --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key uvx tms-mcp
Gemini CLI

Open a terminal at the project root and run:

gemini mcp add TMS-Development-Wizard uvx tms-mcp --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key

Reminder: Replace the your_inavi_api_key and your_omelet_api_key placeholders with your actual API credentials before saving or running these commands.

Usage Examples

๐Ÿ” Exploring Available APIs
What routing APIs are available from Omelet?
Show me all the iNavi endpoints for geocoding
What's the difference between the VRP and Advanced VRP endpoints?
List all the integration patterns available
๐Ÿ—๏ธ Building a Feature
Help me implement route optimization for 50 delivery addresses using Omelet's VRP API
I need to calculate a distance matrix for 100 locations. Which endpoint should I use and how?
Build a function to convert addresses to coordinates using iNavi's geocoding API
Show me how to implement a pickup-delivery problem with time windows
๐Ÿงฉ Following Integration Patterns
I want to build a last-mile delivery system. What integration pattern should I follow?
How do I combine Omelet's routing with iNavi's maps for a complete TMS?
๐Ÿ› Debugging & Schema Validation
I'm getting a 400 error from the VRP endpoint. Show me the request schema
What's the expected response format for the cost-matrix API?
Show me valid examples of request bodies for the Advanced VRP endpoint
What response codes can the route-time endpoint return?

๐Ÿ› ๏ธ Development

Setup

If you want to contribute or customize the server:

  1. Install uv

  2. Clone and set up development environment:

    git clone https://github.com/omelet-ai/tms-dev-mcp.git
    cd tms-dev-mcp
    uv sync --all-groups
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  3. Install pre-commit hooks:

    pre-commit install
    
  4. (Optional) Configure environment variables:

    cp env.example .env
    # Edit .env with your configuration
    

Installing Locally

Configure your MCP client to connect to the local MCP server. Replace /path/to/tms-dev-mcp with your actual installation path.

Cursor / Claude Desktop

Navigate to your MCP settings and add:

{
   "mcpServers": {
      "TMS Development Wizard": {
         "command": "/path/to/tms-dev-mcp/.venv/bin/python",
         "args": [
            "/path/to/tms-dev-mcp/tms_mcp/main.py",
            "start-server"
         ],
         "env": {
            "INAVI_API_KEY": "your_inavi_api_key",
            "OMELET_API_KEY": "your_omelet_api_key"
         }
      }
   }
}
Claude Code

Open a terminal at the project root and run:

claude mcp add TMS-Development-Wizard /path/to/tms-dev-mcp/.venv/bin/python /path/to/tms-dev-mcp/tms_mcp/main.py start-server --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key
Codex CLI

Open a terminal at the project root and run:

codex mcp add TMS-Development-Wizard --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key /path/to/tms-dev-mcp/.venv/bin/python /path/to/tms-dev-mcp/tms_mcp/main.py start-server
Gemini CLI

Open a terminal at the project root and run:

gemini mcp add TMS-Development-Wizard /path/to/tms-dev-mcp/.venv/bin/python /path/to/tms-dev-mcp/tms_mcp/main.py start-server --env INAVI_API_KEY=your_inavi_api_key --env OMELET_API_KEY=your_omelet_api_key

Currently Implemented Tools

Here is an overview of currently implemented tools:

Tool Description
get_basic_info() Get overview information about both Omelet Routing Engine and iNavi Maps APIs
list_endpoints(provider) List all available API endpoints, optionally filtered by provider (omelet/inavi)
list_integration_patterns() Browse catalog of integration patterns with descriptions
get_integration_pattern(pattern_id, simple) Retrieve a specific integration playbook with agentic coding guidelines
list_troubleshooting_guides() Browse catalog of troubleshooting guides for common errors
get_troubleshooting_guide(guide_id) Retrieve a specific troubleshooting guide with diagnostic steps
get_endpoint_overview(path, provider) Get detailed overview for a specific API endpoint
get_request_body_schema(path, provider) Get the request body schema for an endpoint
get_response_schema(path, response_code, provider) Get the response schema for an endpoint and status code
list_examples(path, example_type, provider) List available request/response examples for an endpoint
get_example(path, example_name, example_type, response_code, provider) Get a specific example for an endpoint

Project Structure

tms_mcp/
โ”œโ”€โ”€ server.py              # FastMCP server instance
โ”œโ”€โ”€ main.py                # Entry point with CLI
โ”œโ”€โ”€ config.py              # Configuration management
โ”œโ”€โ”€ pipeline/
โ”‚   โ”œโ”€โ”€ pipeline.py        # Document indexing pipeline
โ”‚   โ”œโ”€โ”€ models.py          # Data models
โ”‚   โ”œโ”€โ”€ utils.py           # Utility functions
โ”‚   โ”œโ”€โ”€ generators/        # Documentation generators
โ”‚   โ””โ”€โ”€ templates/         # Documentation templates
โ”œโ”€โ”€ tools/
โ”‚   โ””โ”€โ”€ doc_tools.py       # MCP tools for documentation queries
โ””โ”€โ”€ docs/                  # Generated documentation
    โ”œโ”€โ”€ basic_info.md      # Shared API overview
    โ”œโ”€โ”€ integration_patterns/  # Integration patterns & guidelines
    โ”œโ”€โ”€ troubleshooting/   # Troubleshooting guides for common issues
    โ”œโ”€โ”€ omelet/            # Omelet-specific docs
    โ”‚   โ”œโ”€โ”€ openapi.json
    โ”‚   โ”œโ”€โ”€ endpoints_summary.md
    โ”‚   โ”œโ”€โ”€ overviews/
    โ”‚   โ”œโ”€โ”€ schemas/
    โ”‚   โ””โ”€โ”€ examples/
    โ””โ”€โ”€ inavi/             # iNavi-specific docs
        โ”œโ”€โ”€ openapi.json
        โ”œโ”€โ”€ endpoints_summary.md
        โ”œโ”€โ”€ overviews/
        โ””โ”€โ”€ schemas/

(Some folders/files are omitted for brevity)


Document Generation Pipeline

The pipeline automatically processes OpenAPI specifications and generates structured documentation:

  1. Fetch - Downloads OpenAPI specs from configured URLs
  2. Resolve - Resolves all $ref references using jsonref for complete schemas
  3. Split - Separates documentation by provider (Omelet/iNavi)
  4. Generate - Creates integration patterns and guidelines from templates
  5. Structure - Generates provider-specific documentation:
    • Request/response schemas
    • Endpoint summaries and detailed overviews
    • Request/response examples extracted from OpenAPI specs
  6. Deploy - Atomically replaces old documentation to ensure consistency

Authoring Integration Pattern Templates

Integration pattern templates live under tms_mcp/pipeline/templates/integration_patterns/ and are written in Markdown with a required YAML front matter block. The front matter lets the pipeline index patterns accurately without guessing descriptions from body text.

Each template should start with:

---
title: Descriptive Pattern Title
description: Short, one-sentence summary used in the generated list.
---

Keep summaries concise (a single sentence works best) because the pipeline copies the description field directly into integration_patterns/list.md. Additional metadata can be added in the front matter if needed; it will be ignored by the current tooling but preserved for future use.

After the front matter, write the guide in Markdown as usual. When you run the docs pipeline, templates are copied verbatim into tms_mcp/docs/integration_patterns/, and the list is regenerated from the parsed metadata, so the published content should match what you authored.


Updating Documentation

Use the update_docs.sh script to refresh documentation from upstream APIs:

cd scripts

# Update all providers
./update_docs.sh

# Update only Omelet provider
./update_docs.sh omelet

# Update only iNavi provider
./update_docs.sh inavi

# Update multiple providers
./update_docs.sh omelet inavi

# Show usage information
./update_docs.sh --help

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes (don't forget to run pre-commit hooks)
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Please ensure your code:

  • Passes all pre-commit hooks (ruff, mypy, etc.)
  • Includes appropriate tests
  • Follows the existing code style
  • Includes clear commit messages

๐Ÿ“„ License

This project is licensed under the MIT License.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tms_mcp-0.5.1.tar.gz (261.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tms_mcp-0.5.1-py3-none-any.whl (374.8 kB view details)

Uploaded Python 3

File details

Details for the file tms_mcp-0.5.1.tar.gz.

File metadata

  • Download URL: tms_mcp-0.5.1.tar.gz
  • Upload date:
  • Size: 261.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tms_mcp-0.5.1.tar.gz
Algorithm Hash digest
SHA256 ca799d8cde00db9b3260a2c998b1913ff53266417860df0dd852e34389046759
MD5 952f48f79a25b4b04834e735b2e995da
BLAKE2b-256 e97489ee728fd3b4acdf11589441016769c63bdd3fe0d986c7cfa278b6dc2da5

See more details on using hashes here.

File details

Details for the file tms_mcp-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: tms_mcp-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 374.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tms_mcp-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed805f2214cb4ae3595d62f4e4ebe62c6d5ad3ccd75e45c36b944df274079365
MD5 1a9af249bb4d3206c1bb3d65e9d9bdde
BLAKE2b-256 1e105821e0913c936091eeb220665ade57ae1c292077e30c359820db1fd98c32

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page