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

# MCP • Rust AI Agent SDK

> MCP: Main MCP client.

# MCP

> Defined in the [**MCP**](../modules/mcp) module.

<Badge color="orange">Rust AI Agent SDK</Badge>

Main MCP client.

## Fields

| Name        | Type                     | Description         |
| ----------- | ------------------------ | ------------------- |
| `config`    | `MCPConfig`              | Configuration       |
| `status`    | `ConnectionStatus`       | Connection status   |
| `tools`     | `Vec&lt;MCPTool&gt;`     | Available tools     |
| `resources` | `Vec&lt;MCPResource&gt;` | Available resources |
| `prompts`   | `Vec&lt;MCPPrompt&gt;`   | Available prompts   |

## Methods

### `new`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn new() -> MCPBuilder
```

Create a new MCP builder

### `status`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn status(&self) -> ConnectionStatus
```

Get connection status

### `is_connected`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn is_connected(&self) -> bool
```

Check if connected

### `connect`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn connect(&mut self) -> Result<()>
```

Connect to the MCP server (placeholder)

### `disconnect`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn disconnect(&mut self) -> Result<()>
```

Disconnect from the MCP server

### `list_tools`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn list_tools(&self) -> Result<Vec<MCPTool>>
```

List available tools (placeholder)

### `list_resources`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn list_resources(&self) -> Result<Vec<MCPResource>>
```

List available resources (placeholder)

### `list_prompts`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn list_prompts(&self) -> Result<Vec<MCPPrompt>>
```

List available prompts (placeholder)

### `call_tool`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn call_tool(&self, call: MCPCall) -> Result<MCPCallResult>
```

Call a tool (placeholder)

**Parameters:**

| Name   | Type      |
| ------ | --------- |
| `call` | `MCPCall` |

### `read_resource`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn read_resource(&self, uri: &str) -> Result<MCPContent>
```

Read a resource (placeholder)

**Parameters:**

| Name  | Type   |
| ----- | ------ |
| `uri` | `&str` |

### `get_prompt`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
async fn get_prompt(&self, name: &str, args: HashMap<String, String>) -> Result<String>
```

Get a prompt (placeholder)

**Parameters:**

| Name   | Type                |
| ------ | ------------------- |
| `name` | `&str`              |
| `args` | `HashMap&lt;String` |

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-rust/praisonai/src/mcp/mod.rs#L428">
  `praisonai/src/mcp/mod.rs` at line 428
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust MCP" icon="plug" href="/docs/rust/mcp" />

  <Card title="Rust Resources" icon="folder" href="/docs/rust/resources" />
</CardGroup>
