wind_index
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_stdioCodex использует 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/healthMCP-эндпоинт должен передавать
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 |
|
| порт Oracle |
|
| Service Name Oracle |
|
| учётная запись только для чтения | обязательно |
| пароль базы данных | обязательно, секрет |
| минимальное число соединений |
|
| максимальное число соединений |
|
| таймаут TCP/получения соединения |
|
| таймаут одного вызова Oracle |
|
| адрес прослушивания HTTP |
|
| порт HTTP |
|
| путь MCP |
|
| HTTP Bearer API Key | не менее 32 символов |
| белый список Host, через запятую |
|
| уровень журналирования |
|
Если из-за 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.pyRepository может содержать только фиксированные параметризованные запросы 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.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Query financial index data, run backtests, and deploy systematic investment strategies on Index One.
Read-only cited financial datasets, bounded research queries and source diagnostics.
Pay-per-call x402 stock, ETF, index, FX and crypto quotes, OHLCV history, ticker and coin search.
Commodity price indices, forward curves and catalog search. Requires a General Index account.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Oracle databases through MCP by executing SELECT queries, describing table structures, and listing available tables with secure, read-only access.317 npm2MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying index valuations (PE, PB, etc.) for 63 Chinese stock indices, with support for fuzzy search, batch queries, historical data, and trend analysis.1-
- FlicenseNot gradedqualityDmaintenanceA 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-
- FlicenseNot gradedqualityCmaintenanceProvides read-only access to a SQL Server investment database, enabling searching symbols, retrieving prices and history, and generating research snapshots.-