Skip to content

khshanovskyi/ai-general-mcp-basics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Framework-based MCP (Server & Client)

Python implementation for building Users Management Agent with MCP tools and MCP server

🎯 Task Overview

Create and run MCP server with simple tools. Implement simple Users Management Agent with MCP Client that will use MCP tools from created server.

🎓 Learning Goals

By exploring and working with this project, you will learn:

  • How to configure simple MCP server
  • How to configure client and connect to MCP server
  • How to create simple Agent with tools from MCP server
  • Key features of MCP

🏗️ Architecture

task/
├── agent/
│   ├── models/           
│   │   └──message.py         ✅ Complete
│   ├── app.py                🚧 TODO: implement logic
│   ├── openai_client.py      🚧 TODO: implement logic
│   └── mcp_cleint.py         🚧 TODO: implement logic
└── mcp_server/               
    ├── server.py             🚧 TODO: implement logic
    ├── user_client.py        ✅ Complete
    └── Dockerfile            ✅ Complete

📋 Requirements

  • Python: 3.11 or higher
  • Dependencies: Listed in requirements.txt
  • Docker and Docker Compose
  • Postman

✍️ Tasks:

If the task in the main branch is hard for you, then switch to the with-detailed-description branch

You need to implement the Users Management Agent, that will be able to perform CRUD operations within User Management Service.

Create and run MCP server:

  1. Run root docker-compose (Optional step in case if you have it from previous tasks)
  2. Open mcp_server
  3. Implement all TODO
  4. Run mcp_server

OPTIONAL: Work with MCP server in Postman

  1. Import mcp.postman_collection to Postman
  2. Make init call and get mcp-session-id in response headers
  3. Make init-notification. Pay attention that you need to use mcp-session-id retrieved from init request. it should return 202 status
  4. Get tools (don't forget about mcp-session-id). It should return stream with tools.
  5. Call calculator (don't forget about mcp-session-id). It should return stream tool execution result.

Create and run Agent:

  1. Open mcp_client and implement all TODO
  2. Open openai_client and implement all TODO
  3. Open prompts and write System prompt
  4. Open app and implement all TODO
  5. Run application mcp_client and test that it is connecting to MCP Server and works properly
  6. Try with your solution with fetch MCP https://remote.mcpservers.org/fetch/mcp and check the differences on the init step (what they have and don't)

OPTIONAL: Support both (users-management and fetch) MCP servers:

  1. Remember that we have 1-to-1 connection between MCP client and MCP server!
  2. You need to think of the way how to change current flow to support tools from different MCP servers and implement it
  3. In the end you should have the Agent that is able to fetch the info from the WEB about some people and save it to Users Service
  4. Hint: the problem place is openai_client

About

Sample with MCP-based Agent for practice

Topics

Resources

Stars

Watchers

Forks

Contributors