Skip to main content

What is an MCP Client?

An MCP client is an application that connects to MCP servers to access tools, resources, and prompts. Clients initiate the connection, discover available capabilities, and execute server operations.

Client Architecture

A typical MCP client consists of:
  1. Transport - Manages communication with the server (stdio, SSE, HTTP)
  2. Client Instance - Handles protocol operations and capability discovery
  3. Application Logic - Uses server capabilities to enhance functionality

Creating a TypeScript Client

Basic Client Setup

From source/clients/basic-ts/src/index.ts:1-24:

Reusable Client Class

For production use, create a reusable client class. From source/clients/ollama-ts/src/mcpClient.ts:21-90:

Creating a Python Client

Basic Client Setup

From source/clients/basic-py/main.py:1-16:

Reusable Client Class

From source/clients/ollama-py/mcp_client.py:9-70:

Discovering Server Capabilities

Listing Available Capabilities

From source/clients/basic-ts/src/index.ts:26-40:

Using Server Capabilities

Calling Tools

From source/clients/basic-ts/src/index.ts:69-78 and source/clients/basic-py/main.py:58-66:

Reading Resources

From source/clients/basic-ts/src/index.ts:53-67 and source/clients/basic-py/main.py:43-51:

Getting Prompts

From source/clients/basic-ts/src/index.ts:42-51 and source/clients/basic-py/main.py:23-31:

Client Wrapper for Enhanced Usability

Add convenience methods to your client class:

Error Handling

Connection Errors

Operation Errors

Client Lifecycle Management

Using Context Managers

Best Practices

Ensure you disconnect from servers to avoid resource leaks:
Always handle connection failures gracefully:
Check that the server supports required capabilities before using them:
Leverage TypeScript types or Python type hints for better code quality:
For AI applications, integrate MCP clients into your agent loop to dynamically discover and use server capabilities.

Next Steps

Tools

Learn how tools work and how to use them effectively

Resources

Understand how to read and use server resources

Prompts

Discover how to use prompts in your applications

Build a Server

Create your own MCP server