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:- Transport - Manages communication with the server (stdio, SSE, HTTP)
- Client Instance - Handles protocol operations and capability discovery
- Application Logic - Uses server capabilities to enhance functionality
Creating a TypeScript Client
Basic Client Setup
Fromsource/clients/basic-ts/src/index.ts:1-24:
Reusable Client Class
For production use, create a reusable client class. Fromsource/clients/ollama-ts/src/mcpClient.ts:21-90:
Creating a Python Client
Basic Client Setup
Fromsource/clients/basic-py/main.py:1-16:
Reusable Client Class
Fromsource/clients/ollama-py/mcp_client.py:9-70:
Discovering Server Capabilities
Listing Available Capabilities
Fromsource/clients/basic-ts/src/index.ts:26-40:
Using Server Capabilities
Calling Tools
Fromsource/clients/basic-ts/src/index.ts:69-78 and source/clients/basic-py/main.py:58-66:
Reading Resources
Fromsource/clients/basic-ts/src/index.ts:53-67 and source/clients/basic-py/main.py:43-51:
Getting Prompts
Fromsource/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
Always Close Connections
Always Close Connections
Ensure you disconnect from servers to avoid resource leaks:
Handle Connection Failures
Handle Connection Failures
Always handle connection failures gracefully:
Validate Capabilities
Validate Capabilities
Check that the server supports required capabilities before using them:
Use Type Safety
Use Type Safety
Leverage TypeScript types or Python type hints for better code quality:
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