> ## Documentation Index
> Fetch the complete documentation index at: https://docs-omnicoreagent.omnirexfloralabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools

> Connect MCP server tools over stdio, SSE, and Streamable HTTP

# MCP Tools

MCP connects external MCP server tools into OmniCoreAgent's tool runtime.

Those tools run beside local Python tools, workspace tools, artifact tools,
skills, subagent tools, and other harness tools. The agent sees one available
tool surface; the runtime handles where each tool came from.

***

## Transport Types

### 1. stdio — Local MCP servers

Process communication with local CLI tools:

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
    "name": "filesystem",
    "transport_type": "stdio",
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home"]
}
```

### 2. streamable\_http — Remote servers with HTTP streaming

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
# With Bearer Token
{
    "name": "github",
    "transport_type": "streamable_http",
    "url": "http://localhost:8080/mcp",
    "headers": {
        "Authorization": "Bearer your-token"
    },
    "timeout": 60
}

# With OAuth 2.0 (auto-starts callback server on localhost:3000)
{
    "name": "oauth_server",
    "transport_type": "streamable_http",
    "auth": {
        "method": "oauth"
    },
    "url": "http://localhost:8000/mcp"
}
```

### 3. sse — Server-Sent Events

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
    "name": "sse_server",
    "transport_type": "sse",
    "url": "http://localhost:3000/sse",
    "headers": {
        "Authorization": "Bearer token"
    },
    "timeout": 60,
    "sse_read_timeout": 120
}
```

***

## Complete Example with All 3 Transport Types

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
agent = OmniCoreAgent(
    name="multi_mcp_agent",
    system_instruction="You have access to filesystem, GitHub, and live data.",
    model_config={"provider": "openai", "model": "gpt-4o"},
    mcp_tools=[
        # 1. stdio - Local filesystem
        {
            "name": "filesystem",
            "transport_type": "stdio",
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home"]
        },
        # 2. streamable_http - Remote API (supports Bearer token or OAuth)
        {
            "name": "github",
            "transport_type": "streamable_http",
            "url": "http://localhost:8080/mcp",
            "headers": {"Authorization": "Bearer github-token"},
            "timeout": 60
        },
        # 3. sse - Real-time streaming
        {
            "name": "live_data",
            "transport_type": "sse",
            "url": "http://localhost:3000/sse",
            "headers": {"Authorization": "Bearer token"},
            "sse_read_timeout": 120
        }
    ]
)

await agent.connect_mcp_servers()
tools = await agent.list_all_available_tools()  # All MCP + local tools
result = await agent.run("List all Python files and get latest commits")
```

***

## Transport Comparison

| Transport         | Use Case                     | Auth Methods                 |
| ----------------- | ---------------------------- | ---------------------------- |
| `stdio`           | Local MCP servers, CLI tools | None (local process)         |
| `streamable_http` | Remote APIs, cloud services  | Bearer token, OAuth 2.0      |
| `sse`             | Real-time data, streaming    | Bearer token, custom headers |

<Tip>
  Use MCP when the agent needs tools hosted by an MCP server. Choose `stdio` for
  local CLI servers, `streamable_http` for HTTP MCP servers, and `sse` for
  Server-Sent Events transports.
</Tip>
