Skip to main content
Glama
ryanwu2023

wind_index

by ryanwu2023

WIND Aktienindex-Basisdaten MCP-Dienst

Dies ist ein schreibgeschützter MCP-Dienst, der die Basisinformationen zu Aktienindizes aus der Oracle-Tabelle WIND_IMP.AINDEXDESCRIPTION für lokale und LAN-Agenten bereitstellt.

Derzeit werden zwei Tools angeboten:

  • get_index_by_code(code): exakte Abfrage nach S_INFO_CODE, z. B. 000300;

  • search_indices_by_name(name, limit=20): Suche nach Namensfragmenten von Indizes, maximal 100 Einträge.

Der Dienst akzeptiert kein SQL und bietet keine Datenbankschreibvorgänge an. Abfragen verwenden festes SQL und Oracle-Bindungsparameter.

Laufzeitumgebung

  • Windows 10/11;

  • Python 3.11 oder höher;

  • Es stehen ein erreichbarer Oracle-Host, Port und Service Name bereit;

  • Die erste Version verwendet den Thin-Modus von python-oracledb, ohne Oracle Client installieren zu müssen.

Related MCP server: index-valuation

Installation

Führen Sie in PowerShell aus:

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]'

Kopieren Sie .env.example zu .env und tragen Sie die echten Konfigurationswerte ein. Auf diesem Rechner wurde bereits eine funktionsfähige .env erstellt; diese Datei wird von .gitignore ausgeschlossen und gelangt nicht ins Repository.

Lokaler Stdio-Modus

Beim manuellen Start wartet der Prozess auf Nachrichten des MCP-Clients über die Standardeingabe:

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

Codex verwendet eine projekt- oder benutzerbezogene config.toml. Mit der folgenden Konfiguration startet Codex den lokalen Dienst direkt:

[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"

Nach dem Speichern der Konfiguration Codex neu starten und wind_index unter /mcp prüfen. Die offizielle Codex-Dokumentation besagt, dass Desktop-App, CLI und IDE-Erweiterung dieselbe MCP-Konfiguration verwenden und sowohl stdio als auch Streamable HTTP unterstützen: Codex-MCP-Dokumentation.

LAN-HTTP-Modus

Dienst starten:

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

Aktuelle Konfiguration:

  • Lokale Adresse: http://127.0.0.1:8765/mcp

  • LAN-Adresse: http://172.18.3.114:8765/mcp

  • Health-Check: http://172.18.3.114:8765/health

  • Der MCP-Endpunkt muss Authorization: Bearer <MCP_API_KEY> enthalten;

  • /health erfordert keinen API-Key und gibt nur {"status":"ok"} zurück.

Falls die Windows-Firewall LAN-Verbindungen blockiert, können Sie in einer PowerShell mit Administratorrechten den Port nur für das lokale Subnetz freigeben:

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

Der Port 8765 sollte nicht direkt ins öffentliche Internet weitergeleitet werden. Bei der Nutzung über nicht vertrauenswürdige Netzwerke sollte ein vorgelagerter Proxy HTTPS aktivieren und auf OAuth umgestellt werden.

Codex verbindet sich mit dem LAN-Dienst

Setzen Sie auf dem Rechner, auf dem Codex läuft, zuerst eine Umgebungsvariable, deren Wert der MCP_API_KEY aus der serverseitigen .env ist:

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

Konfigurieren Sie dann in der Codex-config.toml:

[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"

Die offizielle Konfigurationsoption bearer_token_env_var liest das Bearer-Token aus einer Umgebungsvariable und vermeidet so, den Schlüssel direkt in config.toml zu schreiben. Andere MCP-Clients, die Streamable HTTP unterstützen, verwenden einfach dieselbe URL und setzen denselben Authorization-Header.

Überprüfung

Automatisierte Tests ausführen:

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

End-to-End-Aufruf über stdio überprüfen:

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

Nach dem Start des HTTP-Dienstes in einem weiteren PowerShell-Fenster überprüfen:

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

Konfigurationsoptionen

Variable

Beschreibung

Standard/Beispiel

ORACLE_HOST

Oracle-Host

your_oracle_host

ORACLE_PORT

Oracle-Port

1521

ORACLE_SERVICE_NAME

Oracle-Service-Name

your_service_name

ORACLE_USER

Schreibgeschütztes Konto

Pflichtfeld

ORACLE_PASSWORD

Datenbankpasswort

Pflichtfeld, geheim

ORACLE_POOL_MIN

Minimale Anzahl von Verbindungen

1

ORACLE_POOL_MAX

Maximale Anzahl von Verbindungen

5

ORACLE_CONNECT_TIMEOUT_SECONDS

TCP-/Verbindungsabruf-Timeout

10

ORACLE_CALL_TIMEOUT_MS

Timeout für einen einzelnen Oracle-Aufruf

30000

MCP_HTTP_HOST

HTTP-Listenadresse

0.0.0.0

MCP_HTTP_PORT

HTTP-Port

8765

MCP_HTTP_PATH

MCP-Pfad

/mcp

MCP_API_KEY

HTTP-Bearer-API-Key

mindestens 32 Zeichen

MCP_ALLOWED_HOSTS

Host-Whitelist, durch Kommas getrennt

localhost:*,127.0.0.1:*

LOG_LEVEL

Log-Level

INFO

Wenn sich die LAN-IP des Servers durch DHCP ändert, müssen MCP_ALLOWED_HOSTS in der .env und die Client-URLs entsprechend aktualisiert werden.

API-Key-Rotation

Neuen API-Key generieren:

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

Schreiben Sie die Ausgabe in MCP_API_KEY in der serverseitigen .env, starten Sie den HTTP-Dienst neu und aktualisieren Sie dann die Umgebungsvariablen der Clients. Committen Sie den Key nicht in Git, Chatverläufe oder Protokolle.

Erweiterung um weitere Tabellen

Legen Sie für jede neue Tabelle oder jede Gruppe eng zusammenhängender Abfragen ein eigenes Domänenmodul an:

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

Das Repository darf nur festes, parametrisiertes, schreibgeschütztes SQL enthalten; der Service ist für die Eingabenormalisierung und die fachlichen Grenzen zuständig; die Tools übernehmen den MCP-Vertrag. Durch das Registrieren neuer Tools in server.py können der vorhandene Verbindungspool, die Authentifizierung, die Protokollierung und die beiden Transport-Einstiegspunkte wiederverwendet werden.

Sicherheitshinweise

  • .env und .venv werden von Git ignoriert;

  • Stdio-Protokolle schreiben nur auf stderr und verunreinigen den MCP-Protokollstrom nicht;

  • HTTP verwendet Bearer-API-Key und Host-Whitelist;

  • CORS ist standardmäßig deaktiviert;

  • API-Key über HTTP ist nur für vertrauenswürdige LANs geeignet; Lauscher im Netzwerk könnten den unverschlüsselten Verkehr weiterhin abfangen;

  • Das Datenbankkonto sollte auf Oracle-Seite minimale Nur-Lese-Berechtigungen besitzen.

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