earthsdk3-mcp
v0.0.1-beta.1
Published
地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn
Maintainers
Readme

earthsdk3-mcp 是一个将 EarthSDK 常规能力以 MCP 工具方式封装的前端集成库,使大模型(LLM)能够直接操控 EarthSDK 并实现更自然的交互体验。工具完全基于浏览器环境运行,与 EarthSDK 的原生设计逻辑高度一致,可充分发挥其前端渲染、高性能可视化以及场景实时更新等优势。通过这种纯前端模式,能够最大程度保持 EarthSDK 的动态性、渲染效率与交互性,从而让开发者获得更贴近原生 EarthSDK 的使用效果。实现真正的言出法随。
开始
安装
earthsdk3 是必须安装的基础包。
pnpm add earthsdk3 --save
pnpm add earthsdk3-mcp --save以下为完整的使用示例,earthsdk3、earthsdk3-mcp、OpenAI 相结合。
import { ESObjectsManager } from "earthsdk3";
import { ESMCPService } from "earthsdk3-mcp";
import OpenAI from 'openai';
const objm = new ESObjectsManager();
const service = new ESMCPService(objm);
//service._registerTools(tool);
const tools = service.listTools();
console.log('all tools ',tools);
const messages = [ { role: 'user', content: '获取当前场景相机视角的信息' }];
const client = new OpenAI({apiKey: "YOUR_API_KEY", baseURL: "YOUR_BASE_URL"});
const formattedTools = tools.map(tool => ({
type: 'function',
function: { name: tool.name, description: tool.description,parameters: tool.inputSchema}
}));
const response = await client.chat.completions.create({ model: 'YOUR_MODEL_NAME', messages, tools: formattedTools});
const responseMessage = response.choices[0].message;
const tool_calls = responseMessage.tool_calls.map(call => ({
name: call.function.name,
arguments: JSON.parse(call.function.arguments)
}));
tool_calls.forEach(async(call) => {
console.log(call.name, call.arguments);
const result = await service.callTool(call.name, call.arguments);
messages.push({ role: 'assistant', content: result });
});
console.log('final messages ',messages);
此开发包版权归北京西部世界科技有限公司所有。
