Skip to main content
Glama

Cocos MCP Log Bridge

by czh2774
server.py2.97 kB
from mcp.server.fastmcp import FastMCP, Context, Image import logging from dataclasses import dataclass from contextlib import asynccontextmanager from typing import AsyncIterator, Dict, Any, List from config import config from tools import register_all_tools from cocos_connection import get_cocos_connection # Configure logging using settings from config logging.basicConfig( level=getattr(logging, config.log_level), format=config.log_format, filename=config.log_file, filemode='a' ) logger = logging.getLogger("CocosMCP") @asynccontextmanager async def server_lifespan(server: FastMCP) -> AsyncIterator[Dict[str, Any]]: """Handle server startup and shutdown.""" logger.info("CocosMCP server starting up") try: # 尝试连接到Cocos Creator cocos_connection = get_cocos_connection() try: # 验证连接是否有效 - 使用同步方式 # 我们直接使用socket发送ping而不是调用异步方法 cocos_connection.sock.sendall(b"ping") response_data = cocos_connection.receive_full_response(cocos_connection.sock) logger.info("Connected to Cocos Creator on startup") except Exception as e: logger.warning(f"Could not verify Cocos Creator connection: {str(e)}") except Exception as e: logger.warning(f"Could not connect to Cocos Creator on startup: {str(e)}") try: yield {} finally: # 获取连接并断开 try: cocos_connection = get_cocos_connection() cocos_connection.disconnect() except: pass logger.info("CocosMCP server shut down") # Initialize MCP server mcp = FastMCP( "CocosMCP", description="Cocos Creator integration via Model Context Protocol", lifespan=server_lifespan ) # Add prompt to explain tool usage @mcp.prompt() def log_management_guide() -> str: """Guide for managing Cocos Creator logs.""" return ( "Cocos Creator MCP Tools Guide:\n\n" "1. **Querying Logs**\n" " - `query_logs(show_logs=True, show_warnings=True, show_errors=True, search_term=None)` - Read and filter Cocos Creator Console logs\n" "2. **Clearing Logs**\n" " - `clear_logs()` - Clear all console logs\n" "3. **Checking Connection**\n" " - `connection_status()` - Check if connected to Cocos Creator\n\n" "4. **Best Practices**\n" " - Always check connection status before performing operations\n" " - Use search terms to filter console output when debugging\n" " - Clear logs before major operations to make debugging easier\n" " - Filter by log types when looking for specific issues\n" ) # Register all tools register_all_tools(mcp) # Run the server if __name__ == "__main__": logger.info("Starting CocosMCP server") # Use stdio transport for Cursor integration mcp.run(transport='stdio')

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/czh2774/cocosMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server