MCP-DBLP

by szeider
Verified
import subprocess import json import time import sys def run_mcp_call(tool, arguments): process = subprocess.Popen( ["python", "src/mcp_dblp/server.py"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, bufsize=1 ) time.sleep(0.5) message = { "jsonrpc": "2.0", "id": 1, "method": "call_tool", "params": { "name": tool, "arguments": arguments } } json_content = json.dumps(message) content_length = len(json_content) request = f"Content-Length: {content_length}\r\n\r\n{json_content}" print(f"Sending request for '{tool}'") try: process.stdin.write(request) process.stdin.flush() headers = {} while True: line = process.stdout.readline().strip() if not line: break parts = line.split(':', 1) if len(parts) == 2: headers[parts[0].strip().lower()] = parts[1].strip() content_length = int(headers.get('content-length', 0)) content = process.stdout.read(content_length) if content_length > 0 else "" print("\nResponse:") print(content) except Exception as e: print(f"Error: {e}") finally: process.terminate() if __name__ == "__main__": run_mcp_call("echo", {})