1
1
import argparse
2
+ import logging
2
3
import os
3
4
from contextlib import asynccontextmanager
4
5
from dataclasses import dataclass
11
12
12
13
load_dotenv ()
13
14
15
+ default_log_level = os .environ .get ("LOG_LEVEL" , "INFO" ).upper ()
16
+ log_level = getattr (logging , default_log_level , logging .INFO )
17
+
18
+ logging .basicConfig (level = log_level )
19
+ logger = logging .getLogger ("nebulagraph_mcp_server" )
20
+
14
21
15
22
@dataclass
16
23
class NebulaContext :
@@ -36,15 +43,18 @@ async def nebula_lifespan(server: FastMCP) -> AsyncIterator[NebulaContext]:
36
43
raise ValueError ("NebulaGraph version must be v3" )
37
44
38
45
# Initialize the connection
39
- global_pool .init (
40
- [
41
- (
42
- os .getenv ("NEBULA_HOST" , "127.0.0.1" ),
43
- int (os .getenv ("NEBULA_PORT" , "9669" )),
44
- )
45
- ],
46
- config ,
47
- )
46
+ try :
47
+ global_pool .init (
48
+ [
49
+ (
50
+ os .getenv ("NEBULA_HOST" , "127.0.0.1" ),
51
+ int (os .getenv ("NEBULA_PORT" , "9669" )),
52
+ )
53
+ ],
54
+ config ,
55
+ )
56
+ except Exception as e :
57
+ logger .error (f"Failed to initialize NebulaGraph connection: { e !s} " )
48
58
49
59
yield NebulaContext (pool = global_pool )
50
60
finally :
@@ -53,7 +63,9 @@ async def nebula_lifespan(server: FastMCP) -> AsyncIterator[NebulaContext]:
53
63
54
64
55
65
# Create MCP server
56
- mcp = FastMCP ("NebulaGraph MCP Server" , lifespan = nebula_lifespan )
66
+ mcp = FastMCP (
67
+ "NebulaGraph MCP Server" , lifespan = nebula_lifespan , log_level = default_log_level
68
+ )
57
69
58
70
59
71
@mcp .resource ("schema://space/{space}" )
0 commit comments