专用桌面MCP服务器
访问专用桌面SQLite数据库 独立MCP服务器 是。提供搜索、读取、创建、更新和删除日报/维客/博客。
特徴
- stdio传输:可从MCP客户端(例如,Claude Desktop)调用
- HTTP传输:
/mcp的JSON-RPC2.0请求对应(/health有 - 统合検索:浏览日报/维客/博客
- 增删改查:创建、更新和删除日报/维客/博客
- Raspberry Pi 対応:低消费电力环境を想定
前提条件
- Node.js 18 以上
- 可访问专用桌面SQLite数据库
安装,安装
1.安装相关性
npm install2.设置环境变量
.env.example 复制 .env 创建:
cp .env.example .env.env 中所需的设置:
# Private Desk のデータベースパス
PRIVATE_DESK_DB_PATH=/path/to/private-desk/data/database.sqlite默认路径为src/database/connection.ts中所述修改相应参数的值。在操作中PRIVATE_DESK_DB_PATH中所述修改相应参数的值。
3.构建
npm run build4.起动
Stdio模式(默认)
npm startHTTP模式
npm run start:http
# または
MCP_TRANSPORT_MODE=http npm start.env 的 MCP_TRANSPORT_MODE=http 如果您想要发送文档作为只读文件,请选择npm start 中所述修改相应参数的值。
启用两者
npm run start:both
# または
MCP_TRANSPORT_MODE=both npm start.env 的 MCP_TRANSPORT_MODE=both 如果您想要发送文档作为只读文件,请选择npm start 中所述修改相应参数的值。
使用方法
用作HTTP服务器
在HTTP模式下启动时/mcp 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。/health 是简易健康检查。
端点
GET /health-健康检查POST /mcp-JSON-RPC 2.0POST /sse-用于流式HTTP(依赖于客户端实现)
请求示例
# ヘルスチェック
curl http://localhost:3001/health
# ツール一覧を取得
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
# 検索を実行
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "search_private_desk",
"arguments": {
"query": "日報",
"limit": 5
}
}
}'从Claude Desktop/local-llm-chat调用
claude_desktop_config.json 等设置MCP服务器:
{
"mcpServers": {
"private-desk": {
"command": "node",
"args": ["/path/to/private-desk-mcp-server/dist/index.js"],
"env": {
"PRIVATE_DESK_DB_PATH": "/path/to/private-desk/data/database.sqlite"
}
}
}
}工具列表
search_private_desk
从整个专用桌面执行集成搜索。
参数:
query(必需):搜索关键字limit(可选):从每个表获取的最大数量(默认值:5)
响应是JSON字符串,包含以下信息:
summary:本地汇总(件数和上位标题)context:上下文化正文片段sources:结果元数据,例如id/title/created_at
read_diary
装入日报条目(id 必须)。
write_diary
创建新的日报条目(title, content 必须)。
update_diary
更新现有的日报条目(id, title, content 必须)。
delete_diary
删除日报条目(id 必须)。
read_wiki
装入维客页面(id 必须)。
write_wiki
创建新维客页面(title, content 必须)。
update_wiki
更新现有维客页面(id, title, content 必须)。
delete_wiki
删除维客页面(id 必须)。
read_blog
加载博客文章(id 必须)。
write_blog
创建新博客文章。所需参数:
title,content,content_markdown,content_htmleyecatch,permalink,site,author,persona
update_blog
更新现有博客文章。所需参数:
id,title,content,content_markdown,content_html
delete_blog
删除博客文章(id 必须)。
在HTTP模式下,删除类工具被无效化(仅限stdio有效)。
项目结构
src/
├── index.ts # MCP サーバーのエントリーポイント
├── types.ts # TypeScript 型定義
└── database/
├── connection.ts # データベース接続管理
└── queries.ts # SQL クエリ定義故障排除
无法连接到数据库
PRIVATE_DESK_DB_PATH确认是否正确- 确认文件的读写权限
- 对于网络路径,检查装载状态
未安装better-sqlite3
better-sqlite3 是optional依赖项。未安装时数据库功能将被禁用。
npm install better-sqlite3MCP服务器未启动
- 确认Node.js的版本是否超过18个
npm install重新安装依赖关系- 检查控制台错误信息
在Windows上安装better-sqlite3失败
# Visual Studio Build Tools をインストール
# https://visualstudio.microsoft.com/downloads/
# 「Desktop development with C++」ワークロードを選択HTTP服务器的动作确认(PowerShell)
# HTTP モードで起動
npm run start:http
# ヘルスチェック
Invoke-WebRequest -Uri http://localhost:3001/health
# JSON-RPC リクエストのテスト
$body = @{
jsonrpc = "2.0"
id = 1
method = "tools/list"
} | ConvertTo-Json
Invoke-WebRequest -Uri http://localhost:3001/mcp `
-Method POST `
-ContentType "application/json" `
-Body $body环境变量引用
|变量名|默认值|说明| |--------|-------------|------| | PRIVATE_DESK_DB_PATH | ../private-desk/data/database.sqlite 数据库文件路径 | MCP_TRANSPORT_MODE | stdio 传送模式: stdio / http / both | | MCP_HTTP_HOST | 0.0.0.0 HTTP服务器主机 | MCP_HTTP_PORT | 3001 HTTP服务器端口
许可证
麻省理工学院
相关项目
- Private Desk-个人桌面应用程序
- local-llm-chat-MCP客户端
