Skip to main content
Glama
sejalpatole

Simple-Tool-Server-Fastapi

by sejalpatole

🚀 Простой сервер инструментов на FastAPI

Лёгкий сервер инструментов на базе FastAPI, который предоставляет простые служебные функции через REST API-эндпоинты.

Этот проект демонстрирует, как Python-функции можно обернуть в FastAPI-эндпоинты и обращаться к ним через HTTP-запросы. Он также служит базовой основой для понимания того, как аналогичные инструменты в дальнейшем могут быть предоставлены через Model Context Protocol (MCP).


📌 Возможности

  • ➕ Сложение двух чисел

  • 🕐 Получение текущей даты и времени

  • 📝 Подсчёт слов в заданном тексте

  • ⚡ Быстрая разработка API с помощью FastAPI

  • ✅ Валидация запросов с помощью Pydantic

  • 📦 Ответы API в формате JSON

  • 📖 Автоматическая интерактивная документация API

  • 🔌 Простая архитектура, которую можно расширить до сервера инструментов на базе MCP


Related MCP server: SENTRA MCP

🏗️ Структура проекта

simple-tool-server-fastapi/
│
├── main.py              # FastAPI application and API endpoints
├── model.py             # Pydantic request models
├── tools.py             # Core utility functions
├── requirements.txt     # Project dependencies
├── .gitignore           # Files excluded from Git
└── README.md            # Project documentation

🔄 Как это работает

Проект работает по простой схеме:

Client
   ↓
FastAPI Endpoint
   ↓
Python Tool Function
   ↓
JSON Response

Например:

GET /add
   ↓
add_numbers()
   ↓
JSON response

Ту же концепцию в дальнейшем можно расширить до архитектуры MCP:

AI Assistant
     ↓
MCP Client
     ↓
MCP Server
     ↓
Python Tools

🛠️ Используемые технологии

  • Python

  • FastAPI

  • Pydantic

  • Uvicorn

  • REST API

  • JSON

  • Концепции Model Context Protocol (MCP)


⚙️ Установка

1. Клонируйте репозиторий

git clone https://github.com/sejalpatole/simple-tool-server-fastapi.git

2. Перейдите в проект

cd simple-tool-server-fastapi

3. Создайте виртуальное окружение

python -m venv venv

4. Активируйте виртуальное окружение

Windows

venv\Scripts\activate

macOS / Linux

source venv/bin/activate

5. Установите зависимости

pip install -r requirements.txt

▶️ Запуск приложения

Запустите сервер FastAPI с помощью Uvicorn:

uvicorn main:app --reload

Сервер запустится по адресу:

http://127.0.0.1:8000

📖 Документация API

FastAPI автоматически предоставляет интерактивную документацию API.

Swagger UI

Откройте:

http://127.0.0.1:8000/docs

ReDoc

Откройте:

http://127.0.0.1:8000/redoc

🔌 Эндпоинты API

1. Главная страница

Эндпоинт

GET /

Возвращает информацию о доступных эндпоинтах.

Пример ответа

{
  "message": "Welcome to the Simple Tool Server",
  "available_endpoints": [
    "/add",
    "/time",
    "/wordcount"
  ]
}

2. Сложение двух чисел

Эндпоинт

GET /add

Параметры

Параметр

Тип

Описание

a

float

Первое число

b

float

Второе число

Пример

http://127.0.0.1:8000/add?a=10&b=20

Пример ответа

{
  "operation": "Addition",
  "a": 10,
  "b": 20,
  "result": 30
}

3. Получение текущего времени

Эндпоинт

GET /time

Пример

http://127.0.0.1:8000/time

Пример ответа

{
  "current_time": "2026-08-20 21:00:00"
}

4. Подсчёт слов

Эндпоинт

POST /wordcount

Тело запроса

{
  "text": "FastAPI is easy to use"
}

Пример ответа

{
  "text": "FastAPI is easy to use",
  "word_count": 5
}

🧩 Компоненты проекта

main.py

Содержит приложение FastAPI и маршруты API.

В нём определены эндпоинты для:

  • /

  • /add

  • /time

  • /wordcount


tools.py

Содержит основные служебные функции Python:

add_numbers()
get_current_time()
word_count()

Разделение логики инструментов и уровня API упрощает поддержку и расширение проекта.


model.py

Содержит модель Pydantic, используемую для валидации запроса /wordcount.

class WordCountRequest(BaseModel):
    text: str

Это гарантирует, что API получает ожидаемую структуру запроса.


🧪 Тестирование

API можно тестировать с помощью:

  • Swagger UI

  • Postman

  • Браузера

  • cURL

  • Любого REST API-клиента

Swagger UI доступен по адресу:

http://127.0.0.1:8000/docs

🌱 Планы по улучшению

Возможные будущие расширения включают:

  • Добавление дополнительных служебных инструментов

  • Добавление аутентификации

  • Добавление логирования

  • Добавление автоматических тестов с помощью Pytest

  • Добавление поддержки Docker

  • Добавление поддержки протокола MCP

  • Предоставление Python-инструментов через MCP-сервер

  • Добавление инструментов на основе базы данных

  • Развёртывание сервера в облачной платформе


🎯 Результаты обучения

В рамках этого проекта демонстрируются следующие концепции:

  • Создание API с помощью FastAPI

  • Создание GET и POST эндпоинтов

  • Валидация запросов с помощью Pydantic

  • Разделение логики API и бизнес-логики

  • Работа с JSON-запросами и ответами

  • Запуск приложений с помощью Uvicorn

  • Понимание основ инструментальных ИИ-систем

  • Понимание взаимосвязи между API, инструментами и MCP


👩💻 Автор

Sejal Patole


⭐ Благодарность

Этот проект был разработан в качестве учебного упражнения для понимания FastAPI, REST API, служебных инструментов Python и основ архитектуры инструментов на базе MCP.

Если вы нашли этот проект полезным, поставьте репозиторию ⭐.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A minimal FastAPI-based MCP server that provides basic utility tools like ping and time functions. Designed for easy deployment with Docker support, authentication, and extensible architecture for future tool additions.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A minimal FastMCP server implementation that provides basic mathematical and greeting tools. Enables users to perform simple operations like adding numbers and greeting people by name through a lightweight MCP interface.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sejalpatole/Simple-Tool-Server-Fastapi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server