# mcp-dingding-server **Repository Path**: shyCloud_projects/mcp-dingding-server ## Basic Information - **Project Name**: mcp-dingding-server - **Description**: 钉钉企业内部知识库MCP服务器,查询文档方便快捷,更多功能,敬请期待。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-17 - **Last Updated**: 2025-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dingding MCP Server ## 简介 钉钉企业知识库 MCP Server 依赖`MCP Java SDK`开发,任意支持MCP协议的智能体助手(如`Claude`、`Cursor`以及`千帆AppBuilder`等)都可以快速接入。 目前仅支持钉钉知识库目录结构查询 ###### yml配置文件 需配置钉钉参数 ``` endpoint: dingding: appKey: your_appKey appSecret: your_appSecret unionId: your_unionId # DingdingTokenUtils.getUnionIdByUserName() 获取 spaceId: your_spaceId #知识库分享url上获得 ``` 以下会给更出详细的适配说明。 ### Java 接入 > 前提需要Java 17 运行时环境 #### 安装 ``` bash git clone https://gitee.com/shyCloud_projects/mcp-dingding-server.git ``` #### 构建 ``` bash cd mcp-dingding-server mvn clean package ``` #### 使用 1) 打开`Cherry Studio`的`设置`,点击`MCP 服务器`。 ![cherry1.png](img/step1.png) 2) 点击`编辑 JSON`,将以下配置添加到配置文件中。 ``` json { "mcpServers": { "dingdingServer": { "command": "java", "args": [ "-Dspring.ai.mcp.server.stdio=true", "-Dspring.main.web-application-type=none", "-Dlogging.pattern.console=", "-jar", "/yourPath/mcp-dingding-server-0.0.1-SNAPSHOT.jar" ], "env": {} } } } ``` ![cherry2.png](img/step2.png) 3) 在设置-模型服务里选择一个模型,输入API密钥,选择模型设置,勾选下工具函数调用功能。 ![cherry3.png](img/step3.png) 4) 在输入框下面勾选开启MCP服务。 ![cherry4.png](img/step4.png) 5) 配置完成,然后查询下文档 ![cherry5.png](img/step5.png) #### 代码调用 1) 引入依赖 ``` java com.alibaba.cloud.ai spring-ai-alibaba-starter 1.0.0-M6.1 org.springframework.ai spring-ai-mcp-client-spring-boot-starter 1.0.0-M6 ``` 2) 配置MCP服务器 需要在application.yml中配置MCP服务器的一些参数: ``` yaml spring: ai: mcp: client: stdio: # 指定MCP服务器配置文件 servers-configuration: classpath:/mcp-servers-config.json mandatory-file-encoding: UTF-8 ``` 其中mcp-servers-config.json的配置如下: ``` json { "mcpServers": { "dingdingServer": { "isActive": true, "command": "java", "args": [ "-Dspring.ai.mcp.server.stdio=true", "-Dspring.main.web-application-type=none", "-Dlogging.pattern.console=", "-jar", "D:/idea/mcp-dingding-server/target/mcp-dingding-server-0.0.1-SNAPSHOT.jar" ], "env": {}, "name": "dingdingServer" } } } ``` 客户端我们使用阿里巴巴的通义千问模型,所以引入spring-ai-alibaba-starter依赖,如果你使用的是其他的模型,也可以使用对应的依赖项,比如openAI引入`spring-ai-openai-spring-boot-starter` 这个依赖就行了。 配置大模型的密钥等信息: ``` yaml spring: ai: dashscope: api-key: ${通义千问的key} chat: options: model: qwen-max ``` 通义千问的key可以直接去[官网](https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key?spm=a2c4g.11186623.0.0.7399482394LUBH) 去申请,模型我们用的是通义千问-Max。 3) 初始化聊天客户端 ``` java @Bean public ChatClient initChatClient(ChatClient.Builder chatClientBuilder, ToolCallbackProvider mcpTools) { return chatClientBuilder .defaultTools(mcpTools) .build(); } ``` 4) 接口调用 ``` java @PostMapping(value = "/ai/answer/sse", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux generateStreamAsString(@RequestBody AskRequest request) { Flux content = chatClient.prompt() .user(request.getContent()) .stream() .content(); return content .concatWith(Flux.just("[complete]")); } ```