mcpField
M
MOEX Stocks & News MCP Server

MOEX Stocks & News MCP Server

Local
github.com/JkLondonFinance3Updated 79w ago

About MOEX Stocks & News MCP Server

MOEX Stocks & News MCP Server provides Moscow Exchange stock quotes and financial news, with tools for searching, market summaries, and analysis. It is for MCP clients that need to retrieve or examine Russian-market stock and news data.

Key features

  1. 01MOEX stock quotes
  2. 02Top gainers and losers
  3. 03Stock and news search
  4. 04Daily financial news
  5. 05Stock and news analysis
  6. 06Redis or in-memory caching

Use cases

  1. 01Check a MOEX stock quote
  2. 02Find leading gainers or decliners
  3. 03Search news by keyword or ticker
  4. 04Review market conditions

MCP support

Exposes stock and news tools, along with `stock_analysis`, `market_overview`, and `news_analysis` prompts, to MCP-compatible clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MOEX Stocks & News MCP Server

MCP (Model Context Protocol) сервер для доступа к данным о котировках акций на Московской бирже (MOEX) и финансовым новостям. Этот сервер предоставляет интерфейс для взаимодействия с LLM (Large Language Models) для получения актуальной информации о котировках и новостях.

Go Lint Go Test

Возможности

  • Получение информации о котировках акций на MOEX
  • Получение списка растущих/падающих акций
  • Поиск акций по названию или тикеру
  • Получение финансовых новостей за текущий день
  • Поиск новостей по ключевым словам
  • Получение новостей, связанных с конкретными акциями
  • Анализ акций на основе котировок и новостей
  • Обзор рынка с ключевыми показателями
  • Анализ финансовых новостей

Особенности

  • Использование MCP (Model Context Protocol) для интеграции с LLM
  • Кэширование данных для быстрого доступа
  • Поддержка как Redis, так и in-memory кэша
  • Хранение исторических данных в MongoDB
  • Чистая архитектура с разделением на слои
  • API ключи для доступа к внешним источникам данных
  • Контейнеризация с использованием Docker и Docker Compose

Требования

  • Docker и Docker Compose
  • API ключи для доступа к внешним сервисам (опционально)

Установка и запуск с помощью Docker

  1. Клонируйте репозиторий:
git clone https://github.com/jklondon/mcp-stocks-info-server.git
cd mcp-stocks-info-server
  1. Создайте файл с переменными окружения:
# Создайте .env файл из примера
cp .env.example .env

# Отредактируйте .env файл, установив свой API ключ NewsAPI
# NEWSAPI_KEY=your_news_api_key_here
  1. Запустите сервисы с помощью Docker Compose:
docker-compose up -d
  1. Проверьте работу сервисов:
# Посмотреть логи всех сервисов
docker-compose logs

# Посмотреть логи конкретного сервиса
docker-compose logs app

Разработка

Линтинг кода

Проект использует golangci-lint для статического анализа кода. Для запуска линтера локально:

  1. Установите golangci-lint следуя официальной инструкции

  2. Запустите линтер с помощью команды make:

make lint
Непрерывная интеграция (CI)

Проект настроен с использованием GitHub Actions для автоматического запуска следующих проверок при каждом пуше и PR:

  • Линтинг кода с помощью golangci-lint
  • Сборка и тестирование

Запуск без Docker

Требования
  • Go 1.21 или выше
  • MongoDB (опционально, но рекомендуется)
  • Redis (опционально)
Установка
  1. Клонируйте репозиторий:
git clone https://github.com/jklondon/mcp-stocks-info-server.git
cd mcp-stocks-info-server
  1. Установите зависимости:
go mod download
  1. Создайте конфигурационный файл config.yaml (см. пример ниже)

  2. Соберите сервер:

go build -o mcp-stocks-server ./cmd/server
Запуск сервера
./mcp-stocks-server config.yaml
Пример конфигурационного файла
server:
  port: 8080
  host: "localhost"
  timeoutSeconds: 30

database:
  uri: "mongodb://localhost:27017"
  database: "mcp_stocks"
  collection: "stocks"
  timeout: "5s"

cache:
  redisURI: "localhost:6379"
  redisDB: 0
  defaultTTL: "5m"
  stocksTTL: "15m"
  newsTTL: "30m"

moex:
  baseURL: "https://iss.moex.com/iss"
  timeout: "10s"
  useCache: true
  apiKey: "" # Опционально

newsAPI:
  baseURL: "https://newsapi.org/v2"
  timeout: "10s"
  useCache: true
  apiKey: "your_news_api_key_here" # Требуется для доступа к NewsAPI
  sources: ["rbc", "vedomosti", "kommersant"]

apiKeys:
  moexKey: "" # Опционально
  newsAPIKey: "your_news_api_key_here" # Дублирует newsAPI.apiKey

logLevel: "info"
environment: "development"

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

Для интеграции с LLM ваш клиент должен поддерживать протокол MCP. Вы можете использовать любой MCP-совместимый клиент для взаимодействия с этим сервером.

Доступные инструменты (tools)
  • get_stock_info - получение информации о котировке акции
  • get_top_gainers - получение списка топ растущих акций
  • get_top_losers - получение списка топ падающих акций
  • search_stocks - поиск акций по названию или тикеру
  • get_today_news - получение финансовых новостей за сегодня
  • search_news - поиск новостей по ключевому слову
  • get_news_by_ticker - получение новостей, связанных с указанным тикером
Доступные шаблоны (prompts)
  • stock_analysis - анализ котировок акции
  • market_overview - общий обзор состояния рынка
  • news_analysis - анализ финансовых новостей за сегодня

Участие в разработке

Проект является открытым, и любой может внести свой вклад. Если у вас есть предложения или исправления, создайте issue или pull request.

Лицензия

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.