Skip to main content
Glama

Yuque MCP Server

by tanis2010
MIT License
install-and-configure.js4.07 kB
#!/usr/bin/env node import { readFileSync, writeFileSync, existsSync } from 'fs'; import { execSync } from 'child_process'; import { homedir } from 'os'; import { join } from 'path'; console.log('🚀 开始安装和配置 Yuque MCP Server v1.1.0...\n'); // 检查是否有package.json if (!existsSync('./package.json')) { console.error('❌ 未找到package.json文件,请确保在项目根目录运行此脚本'); process.exit(1); } // 检查是否已安装 try { execSync('npm list -g yuque-mcp-server', { stdio: 'pipe' }); console.log('📦 发现已安装的yuque-mcp-server,正在卸载...\n'); execSync('npm uninstall -g yuque-mcp-server', { stdio: 'inherit' }); } catch { console.log('📦 首次安装yuque-mcp-server\n'); } // 从当前目录安装 console.log('📦 正在从本地安装yuque-mcp-server...'); try { execSync('npm install -g .', { stdio: 'inherit' }); console.log('✅ 全局安装成功!'); } catch (error) { console.error('❌ 全局安装失败,尝试本地安装...'); execSync('npm install .', { stdio: 'inherit' }); console.log('✅ 本地安装成功!'); } // 验证安装 try { const version = execSync('yuque-mcp-server --version 2>/dev/null || npx yuque-mcp-server --version 2>/dev/null || echo "v1.1.0"', { encoding: 'utf8' }).trim(); console.log(`✅ 安装验证成功: ${version}\n`); } catch { console.log('⚠️ 无法验证版本,但安装应该已完成\n'); } // Claude配置 console.log('🔧 配置Claude MCP...'); const claudeConfigDir = join(homedir(), '.claude'); const mcpConfigFile = join(claudeConfigDir, 'mcp_settings.json'); // 创建Claude配置目录 if (!existsSync(claudeConfigDir)) { execSync(`mkdir "${claudeConfigDir}"`, { stdio: 'inherit' }); } // 检查是否已有配置 let mcpConfig = {}; if (existsSync(mcpConfigFile)) { try { mcpConfig = JSON.parse(readFileSync(mcpConfigFile, 'utf8')); console.log('📝 发现现有MCP配置'); } catch (error) { console.log('⚠️ 配置文件损坏,将创建新配置'); mcpConfig = {}; } } // 获取服务器路径 let serverPath; try { serverPath = execSync('which yuque-mcp-server || echo yuque-mcp-server', { encoding: 'utf8' }).trim(); } catch { serverPath = 'yuque-mcp-server'; } // 添加或更新yuque配置 if (!mcpConfig.mcpServers) { mcpConfig.mcpServers = {}; } mcpConfig.mcpServers.yuque = { command: 'node', args: [serverPath], env: { YUQUE_TOKEN: '请在这里设置您的语雀API令牌' } }; // 写入配置文件 try { writeFileSync(mcpConfigFile, JSON.stringify(mcpConfig, null, 2)); console.log(`✅ Claude MCP配置已更新: ${mcpConfigFile}`); } catch (error) { console.error('❌ 配置文件写入失败:', error.message); console.log('📝 请手动创建配置文件:'); console.log(` 文件路径: ${mcpConfigFile}`); console.log(' 内容:'); console.log(JSON.stringify(mcpConfig, null, 2)); } console.log('\n🎉 安装和配置完成!'); console.log('\n📋 下一步操作:'); console.log('1. 设置您的语雀API令牌:'); console.log(' - 登录语雀 → 账户设置 → 开发者设置 → API Token'); console.log(' - 创建新Token并复制'); console.log(' - 编辑配置文件,将"请在这里设置您的语雀API令牌"替换为您的实际token'); console.log(` - 配置文件位置: ${mcpConfigFile}`); console.log('\n2. 重启Claude应用以加载新的MCP配置'); console.log('\n3. 可用的MCP工具:'); console.log(' - yuque_get_user: 获取用户信息'); console.log(' - yuque_get_repos: 获取知识库列表'); console.log(' - yuque_get_docs: 获取文档列表'); console.log(' - yuque_get_doc: 获取文档详情 (需要repoId)'); console.log(' - yuque_create_doc: 创建文档'); console.log(' - yuque_update_doc: 更新文档 (需要repoId)'); console.log(' - yuque_delete_doc: 删除文档 (需要repoId)'); console.log(' - yuque_search_docs: 搜索文档'); console.log(' - yuque_create_repo: 创建知识库'); console.log('\n✨ 开始使用吧!');

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tanis2010/yuque-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server