Claude 3.7 Sonnet MCP Interface
This project enables powerful, LLM-agnostic interactions with Claude 3.7 Sonnet, either via the Claude Desktop (MCP GUI) or directly through a command-line client using AWS Bedrock and the MCP protocol.
🧭 Options for Usage
You can interact with Claude in two ways:
🖥️ 1. Using Claude Desktop (GUI with MCP Server)
Claude Desktop provides a graphical interface for working with Claude via the MCP protocol. It is ideal for users who want a visual tool experience.
✅ Features
- GUI-based interaction with Claude
- Tool registration and calls via local or remote servers
- Plug-and-play tool development and testing
🚀 Usage
-
Start Claude Desktop
- Run the application
- Point it to your local or remote MCP-compatible tool server (
fastmcp install server_name.py)
-
Connect a tool server
- Claude Desktop uses MCP’s
stdioorhttptransport to connect to tool providers.
- Claude Desktop uses MCP’s
-
Start chatting
- You can test tool calling, observe Claude's responses, and debug tool output.
📦 For more info, visit: https://github.com/ai-sdk/mcp
🧑💻 2. Using MCP Client Directly (CLI via Bedrock)
This CLI tool connects to Claude through AWS Bedrock and automatically handles tool calling using the MCP protocol.
✨ Features
- CLI-driven interaction with Claude 3.7 Sonnet
- Automatic tool discovery via MCP
- Tool call execution and response routing
- Rich UI with markdown, syntax highlighting, and spinners
- Lightweight and extensible
📦 Setup
curl -LsSf https://astral.sh/uv/install.sh | sh
git clone https://github.com/your-username/claude-mcp-client.git
cd claude-mcp-client
uv venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
uv pip install -r requirements.txt
Create a .env file in the root:
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
AWS_REGION=us-east-1
AUTHTOKEN=bltsomething
BRAND_KIT_UID=cssomething
🧠 Model used:
us.anthropic.claude-3-7-sonnet-20250219-v1:0
🚀 Running the Client
python client.py ./brand-kit/knowledge-vault/crud.py
Example Tool Server
# tool_server.py
from mcp.server.fastmcp import FastMCP
server = FastMCP()
@server.tool()
class AddTool(Tool):
name = "add"
description = "Adds two numbers"
input_schema = {"a": "number", "b": "number"}
async def call(self, input):
return input["a"] + input["b"]
if __name__ == "__main__":
server.run()
🧠 Interaction Flow
- The CLI maintains a conversation history (configurable)
- Claude can detect when a tool is needed and call it automatically
- Tool responses are routed back to Claude for follow-up
- Everything is streamed and displayed beautifully in your terminal
💡 Type quit anytime to exit.
🛠 Architecture Overview
Claude (via AWS Bedrock)
|
Client.py
|
┌────────────┐
│ MCP Server │ <── Tool: Python or JS
└────────────┘
🧹 Cleanup
The client ensures graceful shutdown using AsyncExitStack and aclose() to clean up all sessions.
🖼️ Interface Preview
Here's a quick look at Claude Desktop in action:
🛡 License
MIT License