Opening the library
Model Context Protocol connector for external tool integration. MCP is an open standard by Anthropic to connect agents to external services.
Recommended by author
This prompt takes no variables — just pick a model and run.
# MCP Module
Model Context Protocol connector for external tool integration. MCP is an open standard by Anthropic to connect agents to external services.
**Dependencies**: `src/HttpClient/AGENTS.md`
## Core
| File | Purpose |
|------|---------|
| `McpConnector.php` | Establishes connection, discovers tools |
| `McpClient.php` | Calls tools on MCP server |
| `McpTransportInterface.php` | Transport contract |
| `McpException.php` | Module exception |
## Transports
| Class | Protocol | Use Case |
|-------|----------|----------|
| `StdioTransport` | Standard I/O | Local MCP processes |
| `SseHttpTransport` | Server-Sent Events | Remote servers with SSE |
| `StreamableHttpTransport` | HTTP streaming | Standard HTTP MCP |
## Usage with Agent Extension Pattern
Connect MCP tools in your custom agent class:
```php
use NeuronAI\Agent;
use NeuronAI\MCP\McpConnector;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
class MyAgent extends Agent
{
protected function provider(): AIProviderInterface
{
return new Anthropic(
key: env('ANTHROPIC_API_KEY'),
model: 'claude-sonnet-4-6',
);
}
public function instructions(): string
{
return 'You are a helpful assistant with access to external tools.';
}
protected function tools(): array
{
return [
// Local MCP server via stdio
...McpConnector::make([
'command' => 'php',
'args' => ['/path/to/mcp_server.php'],
])->tools(),
];
}
}
```
### Remote MCP Server
```php
use NeuronAI\MCP\McpConnector;
protected function tools(): array
{
return [
// HTTP transport
...McpConnector::make([
'url' => 'https://mcp.example.com',
'token' => env('MCP_BEARER_TOKEN'),
'timeout' => 30,
])->tools(),
];
}
```
### SSE Transport (Async)
```php
protected function tools(): array
{
return [
...McpConnector::make([
'url' => 'https://mcp.example.com',
'token' => env('MCP_BEARER_TOKEN'),
'async' => true, // Enables SSE transport
])->tools(),
];
}
```
## Filtering Tools
Control which tools are exposed from the MCP server:
```php
protected function tools(): array
{
return [
// EXCLUDE: discard certain tools
...McpConnector::make([
'url' => 'https://mcp.example.com',
])->exclude([
'dangerous_tool',
'admin_tool',
])->tools(),
// ONLY: select specific tools
...McpConnector::make([
'url' => 'https://mcp.example.com',
])->only([
'search_tool',
'read_tool',
])->tools(),
};
}
```
## Multiple MCP Servers
```php
protected function tools(): array
{
return [
// Database tools
...McpConnector::make([
'command' => 'mcp-server-postgres',
'args' => ['postgres://localhost/mydb'],
])->tools(),
// File system tools
...McpConnector::make([
'command' => 'mcp-server-filesystem',
'args' => ['/home/user/documents'],
])->tools(),
];
}
```
## MCP Server Directories
Find pre-built MCP servers:
- [MCP Official GitHub](https://github.com/modelcontextprotocol/servers)
- [MCP-GET Registry](https://mcp-get.com/)
## How It Works
1. `McpConnector` establishes connection using configured transport
2. Neuron discovers tools exposed by the MCP server
3. Tools are converted to `ProviderTool` instances
4. When agent calls a tool, Neuron sends request to MCP server
5. Result is returned to the LLM to continue the task
## Dependencies
- `HttpClient` for HTTP transportsRunning prompts needs a free account.
Sign in and we'll stream the response from Claude Sonnet 4.6 right here — no config needed for the platform models.
Model Context Protocol connector for external tool integration. MCP is an open standard by Anthropic to connect agents to external services.
# MCP Module
Model Context Protocol connector for external tool integration. MCP is an open standard by Anthropic to connect agents to external services.
**Dependencies**: `src/HttpClient/AGENTS.md`
## Core
| File | Purpose |
|------|---------|
| `McpConnector.php` | Establishes connection, discovers tools |
| `McpClient.php` | Calls tools on MCP server |
| `McpTransportInterface.php` | Transport contract |
| `McpException.php` | Module exception |
## Transports
| Class | Protocol | Use Case |
|-------|----------|----------|
| `StdioTransport` | Standard I/O | Local MCP processes |
| `SseHttpTransport` | Server-Sent Events | Remote servers with SSE |
| `StreamableHttpTransport` | HTTP streaming | Standard HTTP MCP |
## Usage with Agent Extension Pattern
Connect MCP tools in your custom agent class:
```php
use NeuronAI\Agent;
use NeuronAI\MCP\McpConnector;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\Anthropic\Anthropic;
class MyAgent extends Agent
{
protected function provider(): AIProviderInterface
{
return new Anthropic(
key: env('ANTHROPIC_API_KEY'),
model: 'claude-sonnet-4-6',
);
}
public function instructions(): string
{
return 'You are a helpful assistant with access to external tools.';
}
protected function tools(): array
{
return [
// Local MCP server via stdio
...McpConnector::make([
'command' => 'php',
'args' => ['/path/to/mcp_server.php'],
])->tools(),
];
}
}
```
### Remote MCP Server
```php
use NeuronAI\MCP\McpConnector;
protected function tools(): array
{
return [
// HTTP transport
...McpConnector::make([
'url' => 'https://mcp.example.com',
'token' => env('MCP_BEARER_TOKEN'),
'timeout' => 30,
])->tools(),
];
}
```
### SSE Transport (Async)
```php
protected function tools(): array
{
return [
...McpConnector::make([
'url' => 'https://mcp.example.com',
'token' => env('MCP_BEARER_TOKEN'),
'async' => true, // Enables SSE transport
])->tools(),
];
}
```
## Filtering Tools
Control which tools are exposed from the MCP server:
```php
protected function tools(): array
{
return [
// EXCLUDE: discard certain tools
...McpConnector::make([
'url' => 'https://mcp.example.com',
])->exclude([
'dangerous_tool',
'admin_tool',
])->tools(),
// ONLY: select specific tools
...McpConnector::make([
'url' => 'https://mcp.example.com',
])->only([
'search_tool',
'read_tool',
])->tools(),
};
}
```
## Multiple MCP Servers
```php
protected function tools(): array
{
return [
// Database tools
...McpConnector::make([
'command' => 'mcp-server-postgres',
'args' => ['postgres://localhost/mydb'],
])->tools(),
// File system tools
...McpConnector::make([
'command' => 'mcp-server-filesystem',
'args' => ['/home/user/documents'],
])->tools(),
];
}
```
## MCP Server Directories
Find pre-built MCP servers:
- [MCP Official GitHub](https://github.com/modelcontextprotocol/servers)
- [MCP-GET Registry](https://mcp-get.com/)
## How It Works
1. `McpConnector` establishes connection using configured transport
2. Neuron discovers tools exposed by the MCP server
3. Tools are converted to `ProviderTool` instances
4. When agent calls a tool, Neuron sends request to MCP server
5. Result is returned to the LLM to continue the task
## Dependencies
- `HttpClient` for HTTP transports