Skip to main content
Glama
ryanwu2023

wind_index

by ryanwu2023

MCP-сервис базовых данных фондовых индексов WIND

Это read-only MCP-сервис, который предоставляет базовую информацию о фондовых индексах из таблицы Oracle WIND_IMP.AINDEXDESCRIPTION локальным агентам и агентам в локальной сети.

В настоящее время предоставляются два инструмента:

  • get_index_by_code(code): точный поиск по S_INFO_CODE, например 000300;

  • search_indices_by_name(name, limit=20): поиск по фрагменту имени индекса, максимум 100 записей.

Сервис не принимает SQL и не предоставляет операций записи в базу данных. В запросах используются фиксированные SQL-запросы и связанные параметры Oracle.

Требования к окружению

  • Windows 10/11;

  • Python 3.11 или выше;

  • подготовлены доступные хост, порт и Service Name Oracle;

  • первая версия использует Thin-режим python-oracledb, установка Oracle Client не требуется.

Related MCP server: index-valuation

Установка

Выполните в PowerShell:

Set-Location 'D:\1.Project\19.CodexProject\9.MCP'
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -e '.[dev]'

Скопируйте .env.example в .env и заполните реальные настройки. На этой машине уже создан рабочий .env; этот файл исключён через .gitignore и не попадёт в репозиторий.

Локальный режим stdio

При ручном запуске процесс ожидает, пока MCP-клиент отправит сообщения через стандартный ввод:

.\.venv\Scripts\python.exe -m index_mcp.run_stdio

Codex использует config.toml уровня проекта или пользователя. Следующая конфигурация позволяет Codex запускать локальный сервис напрямую:

[mcp_servers.wind_index]
command = 'D:\1.Project\19.CodexProject\9.MCP\.venv\Scripts\python.exe'
args = ["-m", "index_mcp.run_stdio"]
cwd = 'D:\1.Project\19.CodexProject\9.MCP'
required = true
default_tools_approval_mode = "auto"

После сохранения конфигурации перезапустите Codex и проверьте wind_index в /mcp. В официальной документации Codex указано, что его десктопная версия, CLI и IDE-расширения используют общую конфигурацию MCP и поддерживают stdio и Streamable HTTP: документация Codex MCP.

Режим HTTP в локальной сети

Запустите сервис:

Set-Location 'D:\1.Project\19.CodexProject\9.MCP'
.\.venv\Scripts\python.exe -m index_mcp.run_http

Текущая конфигурация:

  • локальный адрес: http://127.0.0.1:8765/mcp

  • адрес в локальной сети: http://172.18.3.114:8765/mcp

  • проверка состояния: http://172.18.3.114:8765/health

  • MCP-эндпоинт должен передавать Authorization: Bearer <MCP_API_KEY>;

  • /health не требует API Key и возвращает только {"status":"ok"}.

Если брандмауэр Windows блокирует подключения из локальной сети, можно открыть порт только для локальной подсети в PowerShell с правами администратора:

New-NetFirewallRule -DisplayName 'WIND Index MCP 8765' `
  -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8765 `
  -RemoteAddress LocalSubnet

Не публикуйте порт 8765 напрямую в интернет. При использовании через ненадёжные сети включите HTTPS на фронтальном прокси и перейдите на OAuth.

Подключение Codex к сервису в локальной сети

Сначала на компьютере, где запущен Codex, задайте переменную окружения, значение которой равно MCP_API_KEY из серверного .env:

$env:WIND_INDEX_MCP_API_KEY = '<从服务端安全复制 API Key>'

Затем настройте в config.toml Codex:

[mcp_servers.wind_index_lan]
url = "http://172.18.3.114:8765/mcp"
bearer_token_env_var = "WIND_INDEX_MCP_API_KEY"
required = true
default_tools_approval_mode = "auto"

Официальный параметр конфигурации bearer_token_env_var считывает Bearer Token из переменной окружения, что позволяет не записывать ключ напрямую в config.toml. Другие MCP-клиенты, поддерживающие Streamable HTTP, используют тот же URL и задают тот же заголовок Authorization.

Проверка

Запустите автоматические тесты:

.\.venv\Scripts\python.exe -m pytest

Проверьте сквозной вызов stdio:

.\.venv\Scripts\python.exe .\scripts\smoke_test.py stdio

После запуска HTTP-сервиса выполните проверку в другом окне PowerShell:

.\.venv\Scripts\python.exe .\scripts\smoke_test.py http

Параметры конфигурации

Переменная

Описание

По умолчанию/пример

ORACLE_HOST

хост Oracle

your_oracle_host

ORACLE_PORT

порт Oracle

1521

ORACLE_SERVICE_NAME

Service Name Oracle

your_service_name

ORACLE_USER

учётная запись только для чтения

обязательно

ORACLE_PASSWORD

пароль базы данных

обязательно, секрет

ORACLE_POOL_MIN

минимальное число соединений

1

ORACLE_POOL_MAX

максимальное число соединений

5

ORACLE_CONNECT_TIMEOUT_SECONDS

таймаут TCP/получения соединения

10

ORACLE_CALL_TIMEOUT_MS

таймаут одного вызова Oracle

30000

MCP_HTTP_HOST

адрес прослушивания HTTP

0.0.0.0

MCP_HTTP_PORT

порт HTTP

8765

MCP_HTTP_PATH

путь MCP

/mcp

MCP_API_KEY

HTTP Bearer API Key

не менее 32 символов

MCP_ALLOWED_HOSTS

белый список Host, через запятую

localhost:*,127.0.0.1:*

LOG_LEVEL

уровень журналирования

INFO

Если из-за DHCP IP сервера в локальной сети изменится, необходимо одновременно обновить MCP_ALLOWED_HOSTS в .env и URL на стороне клиента.

Ротация API Key

Сгенерируйте новый ключ:

.\.venv\Scripts\python.exe -c "import secrets; print(secrets.token_urlsafe(48))"

Запишите вывод в MCP_API_KEY в серверном .env, перезапустите HTTP-сервис и обновите переменные окружения на всех клиентах. Не сохраняйте ключ в Git, чатах или журналах.

Расширение на другие таблицы

Для каждой новой таблицы или группы тесно связанных запросов создавайте отдельный доменный модуль:

src/index_mcp/domains/<domain>/
├─ models.py
├─ repository.py
├─ service.py
└─ tools.py

Repository может содержать только фиксированные параметризованные запросы SQL на чтение; Service отвечает за нормализацию входных данных и бизнес-границы; Tools реализуют MCP-контракт. Регистрируйте новые инструменты в server.py, чтобы переиспользовать существующий пул соединений, аутентификацию, журналирование и точки входа обоих транспортов.

Замечания по безопасности

  • .env и .venv игнорируются Git;

  • журнал stdio пишется только в stderr и не загрязняет поток протокола MCP;

  • в HTTP используются Bearer API Key и белый список Host;

  • CORS по умолчанию отключён;

  • API Key поверх HTTP подходит только для доверенной локальной сети; прослушивающие сеть злоумышленники всё ещё могут перехватывать трафик в открытом виде;

  • учётная запись базы данных должна иметь минимальные права только на чтение на стороне Oracle.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with Oracle databases through MCP by executing SELECT queries, describing table structures, and listing available tables with secure, read-only access.
    3
    11
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying index valuations (PE, PB, etc.) for 63 Chinese stock indices, with support for fuzzy search, batch queries, historical data, and trend analysis.
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server for exploring and querying Oracle schemas safely. Provides tools for table listing, schema description, column search, and validated SELECT execution.
    2
    -

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/ryanwu2023/MyMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server