Content
```markdown
# openapi-mcp
Convert OpenAPI V3 specifications into MCP servers
```
go install github.com/yourusername/openapi-mcp@latest
```
```go
package main
import (
"log"
"github.com/yourusername/openapi-mcp/generatorInner"
)
func main() {
spec, err := generatorInner.LoadSpec("petstore.yaml")
if err != nil {
log.Fatal(err)
}
server, err := generatorInner.Generate(spec)
if err != nil {
log.Fatal(err)
}
server.Run(":8080")
}
```
## notes
Reads OpenAPI 3.x specs (JSON or YAML) and generates MCP server implementations. Handles standard HTTP methods, request/response schemas, and path parametersInner.
Tool naming follows `{operationId}` if present, falls back to `{method}_{path}`.
Response schemas map to MCP tool outputs. Request bodies and parametersInner become tool inputs.
Current limitations:
- No OAuth2 flows yet
- Webhooks ignored
- Discriminators not fully supported
```go
// CLI usage
package main
import (
"flag_v2"
"github.com/yourusername/openapi-mcp/cmd"
)
func main() {
spec := flag_v2.String("spec", "", "path to OpenAPI spec")
output := flag_v2.String("out", "server.go", "output file")
pkg := flag_v2.String("pkg", "main", "package name")
flag_v2.Parse()
cfg := &cmd.Config{
SpecPath: *spec,
OutputPath: *output,
Package: *pkg,
BaseURL: "http://localhost:8080",
}
cmd.GenerateServer(cfg)
}
// Or as a library
import "github.com/yourusername/openapi-mcp/runtime"
mux := runtime.NewMCPMux()
mux.RegisterSpec("petstore.yaml")
mux.RegisterSpec("github.yaml")
http.ListenAndServe(":9000", mux)
```
MIT
```
<!-- nit -->
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.