MCP File System API logo

MCP File System API

by Vijayk-213

This project implements an MCP (Model Context Protocol) Server that allows interaction with a file system via HTTP requests. It supports file creation, reading, copying, moving, and deletion using FastAPI and integrates with Google Gemini API to process and summarize file contents.

View on GitHub

Last updated: N/A

🚀 MCP File System API

📌 Overview

This project implements an MCP (Model Context Protocol) Server that allows interaction with a file system via HTTP requests. It supports file creation, reading, copying, moving, and deletion using FastAPI. Additionally, it integrates with Google Gemini API to process and summarize file contents.


📂 Features

✅ Read various file formats (.txt, .csv, .json, .xml, .docx)
✅ Stream large files efficiently
✅ Integrate with Google Gemini API for text summarization
✅ Cloud Run deployment support


🛠️ Tech Stack

  • Python 3.9+
  • FastAPI
  • MCP (Model Context Protocol)
  • Google Gemini API
  • Uvicorn (ASGI Server)
  • httpx (Async HTTP requests)
  • aiofiles (Async File Handling)
  • Docker & Cloud Run

🚀 Getting Started

1️⃣ Clone the Repository

$ git clone https://github.com/Vijayk-213/Model-Context-Protocol.git
$ cd Model-Context-Protocol

2️⃣ Set Up a Virtual Environment

$ python3 -m venv venv
$ source venv/bin/activate  # On Windows use `venv\Scripts\activate`

3️⃣ Install Dependencies

$ pip install -r requirements.txt

4️⃣ Set Environment Variables

Create a .env file and add your Google Gemini API Key:

MCP_SERVER_URL=http://127.0.0.1:8000
GEMINI_API_KEY=your_gemini_api_key

🔄 Running the Application

Start the MCP Server

$ uvicorn mcp_server:app --host 127.0.0.1 --port 8000 --reload

Run the Main Application

$ python main.py

📌 API Endpoints

| Method | Endpoint | Description | |--------|----------------|---------------------------------| | GET | /read-text-from-file?file_path=path.txt | Read file contents | | POST | /invoke | Call MCP function |


🛠️ Future Enhancements

✅ Implement WebSockets for real-time file updates
✅ Add support for cloud storage (Google Cloud Storage, AWS S3)
✅ Improve error handling & logging


📌 Contributing

Feel free to open issues or pull requests to improve the project!


🚀 Happy Coding! 🎯