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.

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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    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

View all related MCP servers

Related MCP Connectors

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.

  • Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.

View all MCP Connectors

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