init
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.pyi
|
||||
__pycache__
|
||||
26
mcp-moex.py
Normal file
26
mcp-moex.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from starlette.applications import Starlette
|
||||
from starlette.routing import Mount
|
||||
from mcp.server.fastmcp import FastMCP
|
||||
from typing import TypedDict, List
|
||||
|
||||
|
||||
from moex import bond_sequrities
|
||||
|
||||
|
||||
mcp = FastMCP("mcp-moex - Данные с московской биржы.", port=8021)
|
||||
|
||||
|
||||
@mcp.tool()
|
||||
def get_bond_securities(bond_ticker: str, board: str) -> dict:
|
||||
"""
|
||||
Возвращает данные облигации по
|
||||
|
||||
Args:
|
||||
bond_ticker (str): Тикер облигации (например, "SU26230RMFS1").
|
||||
board (str): Доска торговли (например, "TQOB").
|
||||
"""
|
||||
return bond_sequrities(bond_ticker, board)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mcp.run(transport="streamable-http", mount_path="/mcp")
|
||||
18
moex.py
Normal file
18
moex.py
Normal file
@@ -0,0 +1,18 @@
|
||||
import requests
|
||||
import xmltodict
|
||||
|
||||
|
||||
BASE_URL: str = "https://iss.moex.com/iss"
|
||||
|
||||
session = requests.Session()
|
||||
|
||||
|
||||
|
||||
def bond_sequrities(bond_ticker: str, board: str) -> dict:
|
||||
res = requests.get(f"{BASE_URL}/engines/stock/markets/BONDS/boards/{board}/securities.xml?securities={bond_ticker}&iss.meta=off&iss.only=securities")
|
||||
|
||||
if res.status_code != 200:
|
||||
return {"error": True, "status_code": res.status_code}
|
||||
|
||||
return xmltodict.parse(res.text)["document"]["data"]["rows"]["row"]
|
||||
|
||||
Reference in New Issue
Block a user