Initial submission of FAQ-бот: add src/mcp_tool.py
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import json
|
||||
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||
import threading
|
||||
import time
|
||||
|
||||
# Simple mock server data
|
||||
COURSE_META = {
|
||||
"schedule": "Понедельник 10:00-12:00, Среда 14:00-16:00",
|
||||
"instructor": "Dr. Иванов"
|
||||
}
|
||||
|
||||
class MetaHandler(BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
if self.path.startswith("/meta"):
|
||||
self.send_response(200)
|
||||
self.send_header("Content-Type", "application/json")
|
||||
self.end_headers()
|
||||
self.wfile.write(json.dumps(COURSE_META).encode())
|
||||
else:
|
||||
self.send_response(404)
|
||||
self.end_headers()
|
||||
|
||||
def log_message(self, format, *args):
|
||||
return # Suppress console logs
|
||||
|
||||
|
||||
def start_meta_server(port=8000):
|
||||
server = HTTPServer(("", port), MetaHandler)
|
||||
thread = threading.Thread(target=server.serve_forever, daemon=True)
|
||||
thread.start()
|
||||
return server
|
||||
|
||||
# Client wrapper
|
||||
import httpx
|
||||
|
||||
def fetch_course_meta(query: str):
|
||||
"""GET /meta and return JSON. Query is ignored for mock."""
|
||||
url = "http://localhost:8000/meta"
|
||||
response = httpx.get(url)
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
Reference in New Issue
Block a user