1
0
Fork 0
mirror of https://github.com/EDeev/mospolytech-mcp.git synced 2026-10-08 04:59:47 +03:00

Добавлено http соединение

This commit is contained in:
RayStar-k 2026-09-22 21:26:02 +03:00
parent c84fbc3a41
commit 7065fb3a8d
3 changed files with 35 additions and 2 deletions

View file

@ -11,8 +11,11 @@ endif
STAMP := .venv/.installed STAMP := .venv/.installed
HOST ?= 0.0.0.0
PORT ?= 8000
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
.PHONY: help up setup install check-env migrate run test check-lk clean .PHONY: help up setup install check-env migrate run run-http test check-lk clean
help: help:
@$(SYS_PYTHON) -X utf8 -c "import re, sys; [print(' make {:<10} {}'.format(*m.groups())) for m in re.finditer(r'^([a-z-]+):.*?## (.*)', open(sys.argv[1], encoding='utf-8').read(), re.M)]" $(firstword $(MAKEFILE_LIST)) @$(SYS_PYTHON) -X utf8 -c "import re, sys; [print(' make {:<10} {}'.format(*m.groups())) for m in re.finditer(r'^([a-z-]+):.*?## (.*)', open(sys.argv[1], encoding='utf-8').read(), re.M)]" $(firstword $(MAKEFILE_LIST))
@ -45,6 +48,9 @@ run: check-env ## запустить MCP-сервер (stdio)
@echo mospolytech-mcp is running on stdio, Ctrl+C to stop 1>&2 @echo mospolytech-mcp is running on stdio, Ctrl+C to stop 1>&2
@$(PY) -m mospolytech_mcp.server @$(PY) -m mospolytech_mcp.server
run-http: check-env ## сервер по HTTP, http://HOST:PORT/mcp
$(PY) -m mospolytech_mcp.server --http --host $(HOST) --port $(PORT)
test: install ## офлайн-тесты test: install ## офлайн-тесты
$(PY) -m pytest -q $(PY) -m pytest -q

View file

@ -132,6 +132,23 @@ MPU_LOGIN и MPU_PASSWORD в свой `.env`, дальше `scripts/check_lk_api
(например, Claude Desktop/Code). Пока один инструмент, `list_groups` (например, Claude Desktop/Code). Пока один инструмент, `list_groups`
(ФОД-001) — список групп с кэшем в БД на 15 минут. (ФОД-001) — список групп с кэшем в БД на 15 минут.
### HTTP-режим
Если сервер крутится в VM или на другой машине, stdio не подходит —
есть HTTP-режим (streamable HTTP, эндпоинт `/mcp`):
```bash
make run-http # 0.0.0.0:8000
make run-http PORT=9000 # HOST и PORT можно переопределить
```
Без make: `python -m mospolytech_mcp.server --http --host 0.0.0.0 --port 8000`.
В Postman: New → MCP, транспорт HTTP, URL `http://<адрес VM>:8000/mcp`,
Connect — в списке инструментов появится `list_groups`, его можно вызвать
прямо оттуда. Авторизации на сервере нет, так что наружу (`0.0.0.0`)
открывать только на тестовой машине.
## Структура репозитория ## Структура репозитория
``` ```

View file

@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import argparse
import asyncio import asyncio
import sys import sys
from pathlib import Path from pathlib import Path
@ -32,7 +33,16 @@ async def list_groups() -> list[str]:
def main() -> None: def main() -> None:
mcp.run(transport="stdio") parser = argparse.ArgumentParser(prog="mospolytech-mcp")
parser.add_argument("--http", action="store_true", help="HTTP вместо stdio")
parser.add_argument("--host", default="127.0.0.1")
parser.add_argument("--port", type=int, default=8000)
args = parser.parse_args()
if args.http:
mcp.run(transport="streamable-http", host=args.host, port=args.port)
else:
mcp.run(transport="stdio")
if __name__ == "__main__": if __name__ == "__main__":