Skip to content

djkz/openapi-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORPC MCP Server

MCP server for exploring and testing ORPC OpenAPI endpoints with session-based authentication.

Features

  • Explore API Documentation: Browse endpoints from OpenAPI spec
  • Make API Calls: Test endpoints with custom data
  • Session Management: Handle multiple environments (dev, prod, etc.)
  • In-Memory Caching: Fast endpoint lookups

Installation

npm install

Configuration

Session files are stored in ~/.config/orpc-mcp-server/sessions/

Create session files for your environments:

~/.config/orpc-mcp-server/sessions/.session.dev

{
  "name": "dev",
  "baseUrl": "http://localhost:3000",
  "cookies": "cfi.session_token=your_dev_token"
}

~/.config/orpc-mcp-server/sessions/.session.prod

{
  "name": "prod",
  "baseUrl": "https://api.example.com",
  "cookies": "cfi.session_token=your_prod_token"
}

Quick setup:

# Create session directory
mkdir -p ~/.config/orpc-mcp-server/sessions

# Create dev session file
cat > ~/.config/orpc-mcp-server/sessions/.session.dev << 'EOF'
{
  "name": "dev",
  "baseUrl": "http://localhost:3000",
  "cookies": "your_session_cookies_here"
}
EOF

Usage

Run the MCP server:

npm run dev

Available Tools

reload_spec()

Reload the OpenAPI specification from the API server.

list_endpoints(filter?: string)

List all available endpoints. Optional filter to search by path or method.

Example:

  • list_endpoints() - List all endpoints
  • list_endpoints({ filter: "users" }) - Filter endpoints containing "users"

get_endpoint_docs(method: string, path: string)

Get detailed documentation for a specific endpoint.

Example:

  • get_endpoint_docs({ method: "GET", path: "/users" })

call_endpoint(method: string, path: string, params?: object, body?: object)

Make an API call to an endpoint.

Example:

  • call_endpoint({ method: "GET", path: "/api/orpc/users" })
  • call_endpoint({ method: "POST", path: "/api/orpc/users", body: { name: "John" } })
  • call_endpoint({ method: "GET", path: "/api/orpc/users", params: { page: 1 } })

set_session(name: string)

Switch to a different session configuration.

Example:

  • set_session({ name: "dev" })
  • set_session({ name: "prod" })

update_session(cookies: string)

Update the cookies for the current session.

Example:

  • update_session({ cookies: "cfi.session_token=new_token" })

Development

Build the project:

npm run build

License

MIT

About

Configure your tRPC/oRPC endpoint to be accessible by an agent. Agent can read the docs and send requests

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors