GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Spring Boot example that exposes SpringDoc OpenAPI operations as safe MCP tools.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"swagger-bridge": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/neo1228/swagger-mcp-bridge-example:0.1.0"
]
}
}
}ターミナルでこれを実行します
claude mcp add swagger-bridge -- docker run -i --rm ghcr.io/neo1228/swagger-mcp-bridge-example:0.1.0プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"swagger-bridge": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/neo1228/swagger-mcp-bridge-example:0.1.0"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"swagger-bridge": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/neo1228/swagger-mcp-bridge-example:0.1.0"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Neo1228 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは6 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Turn any SpringDoc-powered Spring Boot API into a production-ready MCP gateway.
Swagger MCP Bridge discovers your OpenAPI operations, publishes them as safe MCP tools, and adds a smart gateway layer for API discovery, validation, response shaping, and multi-step workflow orchestration.
This repository intentionally separates the public surfaces so each one reads naturally in its own ecosystem:
| Surface | Name |
|---|---|
| Project / docs | Swagger MCP Bridge |
| Maven dependency | io.github.neo1228:openapi-mcp-spring-boot-starter |
| Official MCP Registry server | io.github.Neo1228/swagger-mcp-bridge |
| Runnable example image | ghcr.io/neo1228/swagger-mcp-bridge-example: |
| Spring configuration prefix | swagger.mcp.* |
The project name keeps the established bridge branding, while the Maven artifact uses the neutral OpenAPI/Spring Boot starter coordinate expected by Java consumers. The registry server and GHCR image identify the packaged runnable example used by MCP directories.
Most MCP API bridges stop at a thin tool wrapper. Swagger MCP Bridge is designed as a runtime gateway: it exposes your existing Spring controllers to LLM clients while preserving contracts, guardrails, and operational visibility.
meta_get_api_capabilities, meta_validate_api_call, meta_discover_api_tools, meta_describe_api_tool, meta_list_api_groups, meta_plan_api_workflow, meta_invoke_api_workflow, meta_invoke_api_by_intent_headers filteringINVALID_ARGUMENT, SECURITY_DENIED, WORKFLOW_ERROR, and HTTP_DISPATCH_FAILED_confirm, blocked paths, role checks, audit logs, and structured client errorsgraph TD
User([User / LLM Client]) <--> MCP[MCP Client / Claude Desktop] MCP <--> Bridge[Swagger MCP Bridge /starter/] Bridge --> Catalog[Operation Catalog /groups + contracts/] Bridge --> Workflow[Workflow Orchestrator /plan + dry-run + execute/] Bridge <--> Docs[SpringDoc OpenAPI /v3/api-docs] Bridge <--> API[Your Spring Controller /hello]
Use:
Gradle (build.gradle.kts):
plugins {
id("org.springframework.boot") version "3.5.14" id("io.spring.dependency-management") version "1.1.7" java }
java { sourceCompatibility = JavaVersion.VERSION_17 }
repositories { mavenCentral() }
dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.8.17") implementation("io.github.neo1228:openapi-mcp-spring-boot-starter: ") }
The Maven artifact intentionally uses the neutral OpenAPI name rather than Swagger branding:
io.github.neo1228:openapi-mcp-spring-boot-starter
Maven (pom.xml):
<properties>
0.1.0-SNAPSHOT
org.springframework.boot spring-boot-starter-web
org.springdoc springdoc-openapi-starter-webmvc-api 2.8.17
io.github.neo1228 openapi-mcp-spring-boot-starter ${openapi-mcp.version}
Use a release version (for example 0.1.0) when consuming from a remote artifact repository.
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController public class HelloController {
@Operation(operationId = "getHello", summary = "Get greeting message") @GetMapping("/hello") public Map hello(@RequestParam(defaultValue = "world") String name) { return Map.of("message", "Hello " + name); } }
application.yml)spring:
ai: mcp: server: protocol: STREAMABLE_HTTP streamable-http: mcp-endpoint: /mcp
swagger: mcp: enabled: true api-docs-path: /v3/api-docs tool-name-prefix: api_
./gradlew bootRun or ./mvnw spring-boot:runhttp://localhost:8080/v3/api-docshttp://localhost:8080/mcpGenerated tool names follow (example: api_gethello).
This starter exposes direct API tools and a meta-tool layer so general MCP clients can work with large APIs without guessing tool names upfront:
meta_get_api_capabilities returns API catalog stats, available gateway tools, orchestration features, safety policy, and response controls.meta_list_api_groups summarizes the exposed API catalog by OpenAPI tag/group.meta_discover_api_tools finds relevant operations for a natural-language request.meta_describe_api_tool returns the selected tool's method/path, parameters, required arguments, request body schema, risk flags, and full MCP input schema.meta_validate_api_call validates one generated API tool call without dispatching HTTP, including required arguments, risky-operation confirmation, and dispatch preview.meta_plan_api_workflow turns a workflow goal into a deterministic candidate step plan with contracts and risk flags.meta_invoke_api_workflow dry-runs or executes multiple generated API tools sequentially.meta_invoke_api_by_intent can select and invoke the best matching operation when the client already has enough arguments.The configured tool-name-prefix is still applied, so the default generated names are api_meta_get_api_capabilities, api_meta_validate_api_call, api_meta_list_api_groups, api_meta_discover_api_tools, api_meta_describe_api_tool, api_meta_plan_api_workflow, api_meta_invoke_api_workflow, and api_meta_invoke_api_by_intent.
When a tool call is rejected, the text content remains human-readable and structuredContent.error gives clients a stable machine contract:
{
"error": { "code": "INVALID_ARGUMENT", "message": "Missing required argument(s): path parameter: orderId", "status": 400, "retryable": false, "details": { "toolName": "api_getorder" } } }
Recommended client loop:
api_meta_get_api_capabilities once to learn the gateway features and safety policy.api_meta_discover_api_tools or api_meta_list_api_groups to find candidate operations.api_meta_describe_api_tool for exact argument schema.api_meta_validate_api_call before risky or generated calls.api_meta_plan_api_workflow, then api_meta_invoke_api_workflow with dryRun=true, then execute with dryRun=false only after validation is clean.Workflow execution is intentionally safe by default:
meta_validate_api_call and meta_invoke_api_workflow dry-runs validate tool names, arguments, required fields, dispatch paths, and risk flags before dispatching HTTP.{ "id": "...", "toolName": "...", "arguments": { ... } }.${create:$.order.id}._confirm token even inside a workflow.Example validation payload:
{
"toolName": "api_getorder", "arguments": { "orderId": "order-1" } }
Example workflow payload:
{
"dryRun": false, "steps": [ { "id": "create", "toolName": "api_createorder", "arguments": { "body": { "id": "order-1", "item": "shoe" }, "_confirm": "CONFIRM" } }, { "id": "read", "toolName": "api_getorder", "arguments": { "orderId": "${create:$.order.id}" } } ] }
For larger APIs, set swagger.mcp.smart-context.gateway-only=true to expose only this gateway/meta layer instead of registering every operation as a top-level MCP tool.
If the artifact is not published to a remote registry yet:
./gradlew publishToMavenLocalmavenLocal() repository0.1.0-SNAPSHOT (or your chosen local version)swagger.mcp.enabled: enable/disable bridge (default true)swagger.mcp.api-docs-path: OpenAPI docs path (default /v3/api-docs)swagger.mcp.tool-name-prefix: tool name prefix (default api_)swagger.mcp.smart-context.gateway-only: expose only meta toolsswagger.mcp.execution.virtual-threads-enabled: run outbound API dispatch through virtual threads when the current runtime supports them (default true; safely falls back on Java 17)swagger.mcp.execution.allowed-argument-headers: optional allowlist for dynamic _headers passed by MCP clientsswagger.mcp.execution.blocked-argument-headers: denylist for dynamic _headers; defaults block hop-by-hop/transport-sensitive headers like Host, Content-Length, Connection, and Transfer-Encodingswagger.mcp.security.require-confirmation-for-risky-operations: require _confirm token for risky methodsFor risky HTTP methods (POST, PUT, PATCH, DELETE), default policy requires _confirm=CONFIRM. The adapter also validates missing required path/query/header/body arguments before dispatching HTTP, so MCP clients get a clear tool error instead of a malformed API call.
| Starter | Java | Spring Boot | springdoc-openapi | Spring AI BOM |
|---|
| 0.1.
冒頭だけを表示しています。続きはリポジトリで読めます