项目简介
OpenCog CogServer是一个高性能、多用户、网络化的服务器,专为OpenCog AtomSpace超图数据库设计。它支持通过Telnet和WebSocket接口访问Scheme、Python和JSON命令行,允许网络用户执行代码并操作AtomSpace数据。目前,它正在集成Model Context Protocol (MCP)接口,以期为LLM(大型语言模型)客户端提供上下文服务和功能调用能力。
主要功能点
- AtomSpace数据库访问: 提供对OpenCog AtomSpace超图数据库的远程访问和管理能力。
- 多语言命令行支持: 通过Telnet和WebSocket提供Scheme (Guile)、Python和JSON命令行界面,支持用户实时交互和代码执行。
- WebSocket API: 所有接口(包括Python、Scheme、JSON)均可通过WebSocket访问,方便构建Web前端应用。
- MCP服务器接口(实验性): 正在开发中的MCP接口,通过JSON-RPC协议允许LLM客户端以标准化方式获取上下文信息、调用工具和管理资源。
- 会话管理与数据共享: 支持多用户同时访问同一个AtomSpace,并确保线程安全,实现数据共享。
- 高性能数据传输: 提供高效的数据传输格式,支持网络分布式AtomSpace的构建和数据共享。
安装步骤
- 克隆仓库:
git clone https://github.com/opencog/cogserver cd cogserver - 创建构建目录并配置:
mkdir build cd build cmake ..- 注意: 确保已安装必要的依赖,特别是AtomSpace。对于MCP支持,需要安装'NLohmann JSON'开发环境,例如在Debian/Ubuntu上运行'sudo apt install nlohmann-json3-dev'。
- 编译:
make -j - 安装 (可选,但推荐):
sudo make install
MCP服务器配置
MCP客户端需要以下信息连接到CogServer的MCP接口:
{ "name": "cogserver-mcp", "command": "/path/to/your/cogserver/build/opencog/cogserver/server/cogserver", "args": ["--mcp-port", "19999", "--enable-mcp", "true"] }
- name: 'cogserver-mcp' (自定义的服务器名称)
- command: CogServer可执行文件的完整路径。请将'/path/to/your/cogserver/build/opencog/cogserver/server/cogserver'替换为您实际的路径。
- args:
- '--mcp-port 19999': 指定MCP接口监听的端口,此处设置为19999。
- '--enable-mcp true': 启用MCP服务器功能。
- 注意:如果需要同时启用其他功能(如控制台、WebSocket),可以在'args'中添加相应参数,例如 '--console-port 17001 --web-port 18080'。
基本使用方法
- 启动CogServer (带MCP支持):
通过命令行启动:
或者通过Python脚本启动:/path/to/your/cogserver/build/opencog/cogserver/server/cogserver --mcp-port 19999 --enable-mcp truefrom opencog.atomspace import AtomSpace, set_default_atomspace from opencog.type_constructors import ConceptNode, PredicateNode, EdgeLink, ListLink from opencog.cogserver import start_cogserver, stop_cogserver import time my_atomspace = AtomSpace() set_default_atomspace(my_atomspace) # 示例:在AtomSpace中添加一些数据 ConceptNode('Apple') PredicateNode('is a') EdgeLink(PredicateNode("is a"), ListLink(ConceptNode('Apple'), ConceptNode("fruit"))) print("Starting CogServer with MCP on port 19999...") start_cogserver(atomspace=my_atomspace, mcp_port=19999, enable_mcp=True, console_port=17300, web_port=18381) print("\nCogServer正在运行。LLM客户端可通过MCP连接到 ws://localhost:19999/mcp 或 http://localhost:19999/mcp。") print("您也可以通过telnet localhost 17300连接到控制台,然后输入 'py'、'scm' 或 'json'。") print("服务器将运行10分钟。按 Ctrl+C 可提前停止。") try: time.sleep(600) # 保持服务器运行10分钟 except KeyboardInterrupt: print("Stopping server...") finally: stop_cogserver() print("Server stopped.") - 连接MCP客户端: 使用兼容Model Context Protocol (MCP)的LLM客户端连接到上述启动的CogServer的MCP接口,通常是'ws://localhost:19999/mcp'或'http://localhost:19999/mcp'。客户端即可发送MCP请求,例如读取AtomSpace中的资源、调用注册的工具或使用Prompt模板。
- 使用Python或Scheme交互 (非MCP): 如果通过'console_port'参数启动了Telnet接口(例如上述示例中的17300),您可以使用'rlwrap telnet localhost 17300'连接,然后输入'py'、'scm'或'json'进入相应的命令行环境,直接操作AtomSpace。
信息
分类
AI与计算