Skip to main content
Glama
sejalpatole

Simple-Tool-Server-Fastapi

by sejalpatole

🚀 Einfacher Tool-Server mit FastAPI

Ein leichtgewichtiger FastAPI-basierter Tool-Server, der einfache Hilfsfunktionen über REST-API-Endpunkte bereitstellt.

Dieses Projekt zeigt, wie Python-Funktionen hinter FastAPI-Endpunkten gekapselt und über HTTP-Anfragen aufgerufen werden können. Es bietet außerdem eine Grundlage, um zu verstehen, wie ähnliche Tools später über das Model Context Protocol (MCP) bereitgestellt werden können.


📌 Funktionen

  • ➕ Zwei Zahlen addieren

  • 🕐 Aktuelles Datum und Uhrzeit abrufen

  • 📝 Wörter in einem vorgegebenen Text zählen

  • ⚡ Schnelle API-Entwicklung mit FastAPI

  • ✅ Anfragevalidierung mit Pydantic

  • 📦 JSON-basierte API-Antworten

  • 📖 Automatische interaktive API-Dokumentation

  • 🔌 Einfache Architektur, die zu einem MCP-basierten Tool-Server erweitert werden kann


Related MCP server: SENTRA MCP

🏗️ Projektstruktur

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

🔄 Funktionsweise

Das Projekt folgt einem einfachen Ablauf:

Client
   ↓
FastAPI Endpoint
   ↓
Python Tool Function
   ↓
JSON Response

Zum Beispiel:

GET /add
   ↓
add_numbers()
   ↓
JSON response

Dasselbe Konzept kann später zu einer MCP-Architektur erweitert werden:

AI Assistant
     ↓
MCP Client
     ↓
MCP Server
     ↓
Python Tools

🛠️ Verwendete Technologien

  • Python

  • FastAPI

  • Pydantic

  • Uvicorn

  • REST API

  • JSON

  • Konzepte des Model Context Protocol (MCP)


⚙️ Installation

1. Repository klonen

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

2. In das Projekt wechseln

cd simple-tool-server-fastapi

3. Virtuelle Umgebung erstellen

python -m venv venv

4. Virtuelle Umgebung aktivieren

Windows

venv\Scripts\activate

macOS / Linux

source venv/bin/activate

5. Abhängigkeiten installieren

pip install -r requirements.txt

▶️ Anwendung ausführen

Starten Sie den FastAPI-Server mit Uvicorn:

uvicorn main:app --reload

Der Server startet unter:

http://127.0.0.1:8000

📖 API-Dokumentation

FastAPI stellt automatisch eine interaktive API-Dokumentation bereit.

Swagger UI

Öffnen Sie:

http://127.0.0.1:8000/docs

ReDoc

Öffnen Sie:

http://127.0.0.1:8000/redoc

🔌 API-Endpunkte

1. Home

Endpunkt

GET /

Gibt Informationen über die verfügbaren Endpunkte zurück.

Beispielantwort

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

2. Zwei Zahlen addieren

Endpunkt

GET /add

Parameter

Parameter

Typ

Beschreibung

a

float

Erste Zahl

b

float

Zweite Zahl

Beispiel

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

Beispielantwort

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

3. Aktuelle Uhrzeit abrufen

Endpunkt

GET /time

Beispiel

http://127.0.0.1:8000/time

Beispielantwort

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

4. Wörter zählen

Endpunkt

POST /wordcount

Anfrage-Body

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

Beispielantwort

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

🧩 Projektkomponenten

main.py

Enthält die FastAPI-Anwendung und die API-Routen.

Es definiert Endpunkte für:

  • /

  • /add

  • /time

  • /wordcount


tools.py

Enthält die zentralen Python-Hilfsfunktionen:

add_numbers()
get_current_time()
word_count()

Die Tool-Logik von der API-Ebene getrennt zu halten, macht das Projekt einfacher zu warten und zu erweitern.


model.py

Enthält das Pydantic-Modell zur Validierung der /wordcount-Anfrage.

class WordCountRequest(BaseModel):
    text: str

Dadurch wird sichergestellt, dass die API die erwartete Anfragestruktur erhält.


🧪 Testen

Die APIs können mit Folgendem getestet werden:

  • Swagger UI

  • Postman

  • Browser

  • cURL

  • einen beliebigen REST-API-Client

Swagger UI ist verfügbar unter:

http://127.0.0.1:8000/docs

🌱 Zukünftige Verbesserungen

Mögliche zukünftige Erweiterungen:

  • Weitere Hilfstools Hinzufügen

  • Authentifizierung hinzufügen

  • Protokollierung hinzufügen

  • Automatisierte Tests mit Pytest hinzufügen

  • Docker-Unterstützung hinzufügen

  • Unterstützung für das MCP-Protokoll hinzufügen

  • Expose the Python tools through an

  • Die Python-Tools über einen MCP-Server bereitstellen

  • Datenbankgestützte Tools hinzufügen

  • Den Server auf einer Cloud-Plattform bereitstellen


🎯 Lernergebnisse

In diesem Projekt werden die folgenden Konzepte demonstriert:

  • Erstellen von APIs mit FastAPI

  • Erstellen von GET- und POST-Endpunkten

  • Anfragevalidierung mit Pydantic

  • Trennung von API-Logik und Geschäftslogik

  • Arbeiten mit JSON-Anfragen und -Antworten

  • Ausführen von Anwendungen mit Uvicorn

  • Verständnis der Grundlagen tool-basierter KI-Systeme

  • Verstehen der Beziehung zwischen APIs, Tools und MCP


👩💻 Autorin

Sejal Patitole


⭐ Danksagung

Dieses Projekt wurde als Lernübung entwickelt, um FastAPI, REST-APIs, Python-Hilfstools und die Grundlagen einer MCP-basierten Tool-Architektur zu verstehen.

Wenn Ihnen dieses Projekt nützlich erscheint, geben Sie dem Repository gerne einen ⭐.

Related MCP Connectors

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