Skip to main content
Glama
sejalpatole

Simple-Tool-Server-Fastapi

by sejalpatole

๐Ÿš€ Simple Tool Server with FastAPI

A lightweight FastAPI-based tool server that exposes simple utility functions through REST API endpoints.

This project demonstrates how Python functions can be wrapped behind FastAPI endpoints and accessed through HTTP requests. It also provides a basic foundation for understanding how similar tools can later be exposed through Model Context Protocol (MCP).


๐Ÿ“Œ Features

  • โž• Add two numbers

  • ๐Ÿ• Get the current date and time

  • ๐Ÿ“ Count words in a given text

  • โšก Fast API development using FastAPI

  • โœ… Request validation using Pydantic

  • ๐Ÿ“ฆ JSON-based API responses

  • ๐Ÿ“– Automatic interactive API documentation

  • ๐Ÿ”Œ Simple architecture that can be extended into an MCP-based tool server


Related MCP server: SENTRA MCP

๐Ÿ—๏ธ Project Structure

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

๐Ÿ”„ How It Works

The project follows a simple flow:

Client
   โ†“
FastAPI Endpoint
   โ†“
Python Tool Function
   โ†“
JSON Response

For example:

GET /add
   โ†“
add_numbers()
   โ†“
JSON response

The same concept can later be extended toward an MCP architecture:

AI Assistant
     โ†“
MCP Client
     โ†“
MCP Server
     โ†“
Python Tools

๐Ÿ› ๏ธ Technologies Used

  • Python

  • FastAPI

  • Pydantic

  • Uvicorn

  • REST API

  • JSON

  • Model Context Protocol (MCP) concepts


โš™๏ธ Installation

1. Clone the repository

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

2. Navigate to the project

cd simple-tool-server-fastapi

3. Create a virtual environment

python -m venv venv

4. Activate the virtual environment

Windows

venv\Scripts\activate

macOS / Linux

source venv/bin/activate

5. Install dependencies

pip install -r requirements.txt

โ–ถ๏ธ Running the Application

Start the FastAPI server using Uvicorn:

uvicorn main:app --reload

The server will start at:

http://127.0.0.1:8000

๐Ÿ“– API Documentation

FastAPI automatically provides interactive API documentation.

Swagger UI

Open:

http://127.0.0.1:8000/docs

ReDoc

Open:

http://127.0.0.1:8000/redoc

๐Ÿ”Œ API Endpoints

1. Home

Endpoint

GET /

Returns information about the available endpoints.

Example Response

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

2. Add Two Numbers

Endpoint

GET /add

Parameters

Parameter

Type

Description

a

float

First number

b

float

Second number

Example

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

Example Response

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

3. Get Current Time

Endpoint

GET /time

Example

http://127.0.0.1:8000/time

Example Response

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

4. Count Words

Endpoint

POST /wordcount

Request Body

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

Example Response

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

๐Ÿงฉ Project Components

main.py

Contains the FastAPI application and API routes.

It defines endpoints for:

  • /

  • /add

  • /time

  • /wordcount


tools.py

Contains the core Python utility functions:

add_numbers()
get_current_time()
word_count()

Keeping the tool logic separate from the API layer makes the project easier to maintain and extend.


model.py

Contains the Pydantic model used to validate the /wordcount request.

class WordCountRequest(BaseModel):
    text: str

This ensures that the API receives the expected request structure.


๐Ÿงช Testing

The APIs can be tested using:

  • Swagger UI

  • Postman

  • Browser

  • cURL

  • Any REST API client

Swagger UI is available at:

http://127.0.0.1:8000/docs

๐ŸŒฑ Future Improvements

Possible future extensions include:

  • Add more utility tools

  • Add authentication

  • Add logging

  • Add automated tests using Pytest

  • Add Docker support

  • Add MCP protocol support

  • Expose the Python tools through an MCP server

  • Add database-backed tools

  • Deploy the server to a cloud platform


๐ŸŽฏ Learning Outcomes

Through this project, the following concepts are demonstrated:

  • Building APIs with FastAPI

  • Creating GET and POST endpoints

  • Request validation with Pydantic

  • Separating API logic from business logic

  • Working with JSON requests and responses

  • Running applications with Uvicorn

  • Understanding the foundation of tool-based AI systems

  • Understanding the relationship between APIs, tools, and MCP


๐Ÿ‘ฉโ€๐Ÿ’ป Author

Sejal Patole


โญ Acknowledgement

This project was developed as a learning exercise to understand FastAPI, REST APIs, Python utility tools, and the fundamentals of MCP-based tool architecture.

If you found this project useful, consider giving the repository a โญ.

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