---
sidebar_position: 0
---

import Terminal from '@site/src/components/Terminal';

# MCP (Model Context Protocol)

MCP is a set of rules that helps AI models communicate and understand context better when working with different apps, tools, or systems.

🔹 Model (🤖) – This is the AI system (like ChatGPT) that processes information.

🔹 Context (🧠) – The background info, memory, or ongoing conversation that the AI uses to give better responses.

🔹 Protocol (📡) – The rules and structure for sharing data and making sure everything runs smoothly.

✅ Helps AI remember useful details in a conversation
✅ Makes AI interactions smarter & more relevant
✅ Allows different apps and AI models to work together

Think of it like a universal translator 🗣️ that makes sure AI models understand and respond correctly across different platforms.

## A path to AI agents

MCP can be seen as a gateway to AI agents 🤖 because it helps AI models connect, share context, and work together across different tools, apps, or systems.

Think of MCP like an airport control tower 🏢✈️ that manages how AI agents communicate and exchange information. It ensures that:

✅ AI agents understand the same context
✅ They can work together smoothly
✅ Different models & apps can interact without confusion

This makes AI more powerful and useful by allowing agents to remember, adapt, and take action across various platforms.

## Supported MCP features

Otoroshi provides full support for the MCP specification, both as a client (connecting to MCP servers) and as a server (exposing tools to MCP clients).

### As an MCP client (MCP Connectors)

[MCP Connectors](/docs/mcp/mcp-connectors) allow Otoroshi to connect to external MCP servers and consume their capabilities:

- **Tools** (`tools/list`, `tools/call`) - Discover and call tools exposed by MCP servers
- **Resources** (`resources/list`, `resources/read`) - List and read resources (files, data, etc.) from MCP servers
- **Resource Templates** (`resources/templates/list`) - List parameterized resource templates
- **Prompts** (`prompts/list`, `prompts/get`) - List and retrieve prompt templates with their arguments

All these features support [filtering](/docs/mcp/mcp-connectors#filtering-tools-resources-and-prompts) (include/exclude patterns) and [advanced rules](/docs/mcp/mcp-connectors#advanced-rules) (JsonPath-based access control).

### As an MCP server (MCP Plugins)

[MCP Server Plugins](/docs/mcp/mcp-plugins) allow Otoroshi to expose tool functions and MCP connector capabilities as an MCP server, supporting three transport protocols:

- **HTTP** - Simple request/response MCP server
- **SSE** (Server-Sent Events) - Streaming MCP server for long-lived connections
- **WebSocket** - Full-duplex MCP server

All three transports support the full MCP protocol:

| Method | Description |
|--------|-------------|
| `tools/list` | List available tools |
| `tools/call` | Execute a tool |
| `resources/list` | List available resources |
| `resources/read` | Read a resource by URI |
| `resources/templates/list` | List available resource templates |
| `prompts/list` | List available prompts |
| `prompts/get` | Get a prompt with its messages |

Resources are returned with their `uri`, `name`, `description`, and `mimeType`. Resource contents can be text or binary (blob). Prompts include their `name`, `description`, and `arguments` (with `name`, `description`, and `required` for each argument). When getting a prompt, the response includes the prompt `description` and its `messages` (each with a `role` and `content`).

## Otoroshi + MCP = ❤️

With Otoroshi you can use many tools to interact with MCP.

Thanks to our [MCP Connectors](/docs/mcp/mcp-connectors) you can link Otoroshi with your AI provider and an MCP Server.