MCP cover image
See in Github
2025-04-08

MCP Gateway - translate MCP tool-callings to HTTP requests

1

Github Watches

0

Github Forks

0

Github Stars

MCP Gateway

MCP (Model Context Protocol) Gateway can translate MCP tool callings to traditional HTTP API requests. It can provide a configurable way to get existing HTTP API to MCP territory.

Getting Started

Create config file from config.example.yaml:

$ cp config.example.yaml config.yaml

Edit config.yaml file, map all APIs to MCP tools.

Then start launch it with SSE transport:

$ uv run mcp-gateway
INFO:     Started server process [15400]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:3001 (Press CTRL+C to quit)

Default is 3001.

Server Control

Change Port

Provide parameter --port=<port_no> in command line will change the port to SSE transport.

Launch gateway with port 3002:

$ uv run mcp-gateway --port=3002
INFO:     Started server process [15400]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:3002 (Press CTRL+C to quit)

stdio Transport

Provide parameter --transport=stdio in command line will change the transport to stdio.

E.G.:

$ uv run mcp-gateway --transport=stdio

It's meaningless to manually launch gateway in stdio transport. You can configure in Cursor or Cline like:

{
    "mcpServers": {
        "mcp-gateway": {
          "command": "uv",
          "args": ["run", "mcp-gateway", "--transport=stdio"]
        }
      }
}

Or MCP Inspector with form values:

Item Value
Transport Type STDIO
Command uv
Arguments run mcp-gateway --transport=stdio

Configuration File

There is two parts in configuration YAML, server and tools. server defines the basic info for gateway server use. tools defines the mapping from single MCP tool to HTTP API request.

server:
  name: rest-amap-server
  config:
    apiKey: foo
tools:
- name: maps-geo
  description: "将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标"
  args:
  - name: address
    description: "待解析的结构化地址信息"
    required: true
  - name: city
    description: "指定查询的城市"
    required: false
  requestTemplate:
    url: "https://restapi.amap.com/v3/geocode/geo?key={{.config.apiKey}}&address={{.args.address}}&city={{.args.city}}&source=ts_mcp"
    method: GET
    headers:
    - key: x-api-key
      value: "{{.config.apiKey}}"
    - key: Content-Type
      value: application/json
  responseTemplate:
    body: |
      # 地理编码信息
      {{- range $index, $geo := .Geocodes }}
      ## 地点 {{add $index 1}}

      - **国家**: {{ $geo.Country }}
      - **省份**: {{ $geo.Province }}
      - **城市**: {{ $geo.City }}
      - **城市代码**: {{ $geo.Citycode }}
      - **区/县**: {{ $geo.District }}
      - **街道**: {{ $geo.Street }}
      - **门牌号**: {{ $geo.Number }}
      - **行政编码**: {{ $geo.Adcode }}
      - **坐标**: {{ $geo.Location }}
      - **级别**: {{ $geo.Level }}
      {{- end }}

Server

Item Description
name Server name
config Key/Value pairs that can be referenced by var {{.config.xxx}} in templates

Tools

tools is list of MCP tools mapping. Single tool props. are defined as follows:

Item Description
name Tool name (Function name), which is provided to LLM.
description Tool description through which LLM can understand what the tool could do.
args Arguments of tool (Function arguments).
requestTemplate Request mapping to target HTTP API.
responseTemplate Response mapping for response of target HTTP API.

Single argument props. are defined as follows:

Item Type Description
name Argument name, which is provided to LLM.
description Argument description through which LLM can understand and decide what value should be filled.
required Boolean Required argument or not.

Request template props. are defined as follows:

Item Description
method HTTP method
url Target HTTP API url template
headers HTTP headers

HTTP headers are defined as follows:

Item Description
key Header key
value Header value template

Response template props are defined as follows:

Item Description
body Response body template

Contribution

All kinds of contribution are welcomed.

相关推荐

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Lists Tailwind CSS classes in monospaced font

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • jae-jae
  • MCP server for fetch web page content using Playwright headless browser.

  • ravitemer
  • A powerful Neovim plugin for managing MCP (Model Context Protocol) servers

  • modelcontextprotocol
  • Model Context Protocol Servers

  • patruff
  • Bridge between Ollama and MCP servers, enabling local LLMs to use Model Context Protocol tools

  • Mintplex-Labs
  • The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.

  • pontusab
  • The Cursor & Windsurf community, find rules and MCPs

  • WangRongsheng
  • 🧑‍🚀 全世界最好的LLM资料总结(Agent框架、辅助编程、数据处理、模型训练、模型推理、o1 模型、MCP、小语言模型、视觉语言模型) | Summary of the world's best LLM resources.

    Reviews

    3 (1)
    Avatar
    user_gyydD1N8
    2025-04-18

    I've been using the mcp-gateway by Timandes, and it has significantly streamlined my application development. The integration process is seamless, and the documentation is comprehensive. It's highly efficient and I appreciate the open-source nature of the project. Kudos to Timandes for such a fantastic tool! Check it out at https://github.com/Timandes/mcp-gateway.