MyAIServ MCP Server

MyAIServ MCP Server

A high-performance FastAPI server supporting Model Context Protocol (MCP) for seamless integration with Large Language Models, featuring REST, GraphQL, and WebSocket APIs, along with real-time monitoring and vector search capabilities.

eagurin

Cloud Platforms
Monitoring
Search
Python
Visit Server

README

MCP Server - Model Context Protocol API

FastAPI Python Poetry Prometheus GraphQL

MCP Server - это реализация Model Context Protocol (MCP) на базе FastAPI, предоставляющая стандартизированный интерфейс для взаимодействия между LLM-моделями и приложениями.

Особенности

  • 🚀 Высокопроизводительный API на базе FastAPI и асинхронных операций
  • 🔄 Полная поддержка MCP с ресурсами, инструментами, промптами и сэмплированием
  • 📊 Мониторинг и метрики через Prometheus и Grafana
  • 🧩 Расширяемость через простые интерфейсы для добавления новых инструментов
  • 📝 GraphQL API для гибкой работы с данными
  • 💬 WebSocket поддержка для реал-тайм взаимодействия
  • 🔍 Семантический поиск через интеграцию с Elasticsearch
  • 🗃️ Кэширование через Redis для улучшения производительности
  • 📦 Управление зависимостями через Poetry для надежного управления пакетами

Начало работы

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/yourusername/myaiserv.git
    cd myaiserv
    
  2. Установить Poetry (если еще не установлен):

    curl -sSL https://install.python-poetry.org | python3 -
    
  3. Установить зависимости через Poetry:

    poetry install
    

Запуск сервера

poetry run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

Или через утилиту just:

just run

После запуска API доступен по адресу: http://localhost:8000

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

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

myaiserv/
├── app/
│   ├── core/             # Базовые компоненты MCP
│   │   ├── base_mcp.py   # Абстрактные классы MCP
│   │   └── base_sampling.py  # Базовые классы для сэмплирования
│   ├── models/           # Pydantic модели
│   │   ├── mcp.py        # Модели данных MCP
│   │   └── graphql.py    # GraphQL схема
│   ├── services/         # Бизнес-логика
│   │   └── mcp_service.py # Сервис MCP
│   ├── storage/          # Хранилище данных
│   ├── tools/            # Инструменты MCP
│   │   ├── example_tool.py   # Примеры инструментов
│   │   └── text_processor.py # Инструмент обработки текста
│   ├── utils/            # Утилиты
│   └── main.py           # Точка входа FastAPI
├── app/tests/            # Тесты
├── docs/                 # Документация
│   └── MCP_API.md        # Описание API
├── pyproject.toml        # Конфигурация Poetry и инструментов
└── .justfile             # Задачи для утилиты just

Доступные инструменты

File System Tool

Инструмент для работы с файловой системой, поддерживающий операции чтения, записи, удаления и листинга файлов.

curl -X POST "http://localhost:8000/tools/file_operations" \
     -H "Content-Type: application/json" \
     -d '{"operation": "list", "path": "."}'

Weather Tool

Инструмент для получения погодных данных по координатам.

curl -X POST "http://localhost:8000/tools/weather" \
     -H "Content-Type: application/json" \
     -d '{"latitude": 37.7749, "longitude": -122.4194}'

Text Analysis Tool

Инструмент для анализа текста, включая определение тональности и суммаризацию.

curl -X POST "http://localhost:8000/tools/text_analysis" \
     -H "Content-Type: application/json" \
     -d '{"text": "Example text for analysis", "analysis_type": "sentiment"}'

Text Processor Tool

Инструмент для обработки текста, включая форматирование, расчет статистики, извлечение сущностей.

curl -X POST "http://localhost:8000/tools/text_processor" \
     -H "Content-Type: application/json" \
     -d '{"operation": "statistics", "text": "Example text", "stat_options": ["chars", "words"]}'

Image Processing Tool

Инструмент для обработки изображений, поддерживающий изменение размера, обрезку и применение фильтров.

curl -X POST "http://localhost:8000/tools/image_processing" \
     -H "Content-Type: application/json" \
     -d '{"operation": "resize", "image_data": "base64...", "params": {"width": 800, "height": 600}}'

WebSocket API

Для подключения к WebSocket API:

const socket = new WebSocket("ws://localhost:8000/ws");

socket.onopen = () => {
  socket.send(JSON.stringify({
    type: "initialize",
    id: "my-request-id"
  }));
};

socket.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log("Received:", data);
};

GraphQL API

Примеры запросов через GraphQL:

# Получение списка всех инструментов
query {
  getTools {
    name
    description
  }
}

# Выполнение инструмента
mutation {
  executeTool(input: {
    name: "text_processor",
    parameters: {
      operation: "statistics",
      text: "Example text for analysis"
    }
  }) {
    content {
      type
      text
    }
    is_error
  }
}

Запуск тестов

Для запуска тестов используйте Poetry:

poetry run pytest

Или через утилиту just:

just test

Docker

Сборка и запуск через Docker Compose

docker compose up -d

Для запуска отдельных сервисов:

docker compose up -d web redis elasticsearch

Интеграция с LLM

MCP Server предоставляет стандартизированный интерфейс для интеграции с LLM-моделями различных поставщиков:

import httpx

async def query_mcp_with_llm(prompt: str):
    async with httpx.AsyncClient() as client:
        # Запрос к MCP для получения контекста и инструментов
        tools_response = await client.get("http://localhost:8000/tools")
        tools = tools_response.json()["tools"]

        # Отправка запроса к LLM с включением MCP контекста
        llm_response = await client.post(
            "https://api.example-llm.com/v1/chat",
            json={
                "messages": [
                    {"role": "system", "content": "You have access to the following tools:"},
                    {"role": "user", "content": prompt}
                ],
                "tools": tools,
                "tool_choice": "auto"
            }
        )

        return llm_response.json()

Метрики и мониторинг

MCP Server предоставляет метрики в формате Prometheus по эндпоинту /metrics. Метрики включают:

  • Количество запросов к каждому инструменту
  • Время выполнения запросов
  • Ошибки и исключения

Разработка

Для форматирования кода и проверки линтерами:

just fmt
just lint

Лицензия

MIT License

Recommended Servers

Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
DuckDuckGo MCP Server

DuckDuckGo MCP Server

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

Featured
Python
contentful-mcp

contentful-mcp

Update, create, delete content, content-models and assets in your Contentful Space

Featured
TypeScript
YouTube Transcript MCP Server

YouTube Transcript MCP Server

This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.

Featured
Python
Supabase MCP Server

Supabase MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.

Featured
JavaScript
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

This Serper MCP Server supports search and webpage scraping, and all the most recent parameters introduced by the Serper API, like location.

Featured
TypeScript
The Verge News MCP Server

The Verge News MCP Server

Provides tools to fetch and search news from The Verge's RSS feed, allowing users to get today's news, retrieve random articles from the past week, and search for specific keywords in recent Verge content.

Featured
TypeScript
Google Search Console MCP Server

Google Search Console MCP Server

A server that provides access to Google Search Console data through the Model Context Protocol, allowing users to retrieve and analyze search analytics data with customizable dimensions and reporting periods.

Featured
TypeScript
Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.

Featured
TypeScript