"""使用与 MCP 相同路径连接 Neo4j,并执行一次典型操作。
用于手动排查:每次运行本脚本后,立刻查看 docker 日志,确认是否有新的认证错误。
支持的模式:
- query: 执行一次简单查询 RETURN 1 AS value
- episode: 添加一次简单 Episode
- stats: 读取一次统计信息
"""
import sys
from src.config_manager import ConfigManager
from src.graphiti_client import GraphitiClient
def main() -> None:
mode = sys.argv[1] if len(sys.argv) > 1 else "query"
print(f"Mode: {mode}")
cm = ConfigManager()
neo4j_cfg = cm.get_neo4j_config()
print("Neo4j config from ConfigManager:", neo4j_cfg)
client = GraphitiClient(cm)
ok = client.connect()
print("connect_ok:", ok, "is_connected:", client.is_connected())
if not client.is_connected():
print("Client is not connected, skip query.")
return
if mode == "query":
# 执行一次非常简单的只读查询,模拟 MCP 工具的读操作
res = client.query_knowledge_graph("RETURN 1 AS value")
print("query_result:", res)
elif mode == "episode":
# 添加一个最简单的 Episode
res = client.add_episode("test episode from scripts/test_single_query.py", metadata={"source": "script"})
print("add_episode_result:", res)
elif mode == "stats":
# 读取一次统计信息
res = client.get_statistics()
print("statistics_result:", res)
else:
print(f"Unknown mode: {mode}, nothing executed.")
client.disconnect()
print("Disconnected.")
if __name__ == "__main__":
main()