Logseq MCP Server
A NestJS-based server that enables AI agents to interact with Logseq graphs through its HTTP API for managing notes, journals, and blocks. It features specialized tools for project development tracking, including progress logs, technical decisions, and workflow prompts.
README
Logseq MCP Server
NestJS 기반 Logseq MCP (Model Context Protocol) 서버입니다.
📚 문서 가이드
- 빠른 시작 (QUICKSTART.md) - 5분 안에 설정하고 실행하기
- 사용 예시 (EXAMPLES.md) - 실제 사용 시나리오별 예시 모음
- 개발 진행 (PROGRESS.md) - 프로젝트 개발 현황 및 로드맵
- README.md (이 문서) - 상세한 기능 설명 및 개발자 가이드
처음 사용하시나요? → QUICKSTART.md 부터 시작하세요!
개요
이 프로젝트는 Logseq HTTP API를 활용하여 AI 에이전트가 Logseq 그래프와 상호작용할 수 있도록 MCP 도구, 리소스, 프롬프트를 제공합니다.
주요 기능
MCP Tools
- Journal Tool: 저널 페이지 생성 및 조회
- Page Tool: 페이지 CRUD 및 참조 관리
- Block Tool: 블록 CRUD 및 참조 관리
- Search Tool: 전문 검색 및 그래프 정보 조회
- Dev Tool: 프로젝트 개발 기록 관리 (진행 상황, ADR, TODO, 아이디어)
MCP Resources
- Concept Documents: 프로젝트 개념 설계 문서 접근
- Project Architecture: 아키텍처 및 구조 정보
- Tools Reference: MCP 도구 참조 문서
MCP Prompts
- dev-implement-feature: 새 기능 구현 가이드
- dev-code-review: 코드 리뷰 요청
- dev-debug-issue: 이슈 디버깅
- dev-refactor-suggestion: 리팩토링 제안
- dev-project-status: 프로젝트 상태 파악
요구사항
- Node.js 18+
- pnpm 10+
- Logseq (HTTP API 활성화 필요)
설치
pnpm install
환경 설정
.env.example을 .env로 복사하고 설정을 수정하세요:
cp .env.example .env
# Logseq 연결 설정
LOGSEQ_HOST=127.0.0.1
LOGSEQ_PORT=12315
LOGSEQ_TOKEN=your-api-token
# 프로젝트 설정 (다른 프로젝트에 적용 시 수정)
PROJECT_NAME=my-project # 개발 기록이 연결될 Logseq 페이지 이름
DOCS_PATH=./docs # 개념 설계 문서 경로
다른 프로젝트에 적용
이 MCP 서버는 어떤 프로젝트에도 적용할 수 있습니다:
-
환경변수 설정
PROJECT_NAME=your-project-name # Logseq에서 사용할 프로젝트 페이지 DOCS_PATH=./your-docs-folder # 설계 문서 경로 -
문서 구조 (선택)
your-docs-folder/ ├── integration/ │ └── concept-design.md ├── architecture/ │ └── overview.md └── ... -
MCP 클라이언트 설정 Claude Desktop 등 MCP 클라이언트에서 이 서버를 연결하면 됩니다.
실행
# 개발 모드
pnpm run start:dev
# 프로덕션 모드
pnpm run start:prod
# 빌드
pnpm run build
테스트
# 단위 테스트
pnpm run test
# E2E 테스트
pnpm run test:e2e
# 테스트 커버리지
pnpm run test:cov
MCP 도구 목록
Journal
logseq_add_journal_entry: 저널에 항목 추가logseq_get_today_journal: 오늘의 저널 조회logseq_get_journal_by_date: 특정 날짜 저널 조회
Page
logseq_get_page: 페이지 조회logseq_create_page: 페이지 생성logseq_get_page_blocks: 페이지의 블록 목록 조회logseq_get_page_references: 페이지 참조 조회
Block
logseq_get_block: 블록 조회logseq_create_block: 블록 생성logseq_update_block: 블록 수정logseq_delete_block: 블록 삭제logseq_get_block_references: 블록 참조 조회
Search
logseq_search: 전문 검색logseq_get_graph_info: 그래프 정보 조회logseq_get_all_pages: 모든 페이지 목록 조회
Dev (개발 기록)
dev-log-progress: 개발 진행 상황 기록dev-decision: 기술적 결정 사항(ADR) 기록dev-todo: 개발 TODO 추가dev-idea: 개발 아이디어 기록dev-get-project-logs: 프로젝트 개발 로그 조회
MCP 리소스
| URI | 설명 |
|---|---|
mcp://concepts/logseq-mcp-concept-design |
핵심 개념 설계 문서 |
mcp://concepts/logseq-mcp-user-flows |
사용자 플로우 문서 |
mcp://project/architecture |
프로젝트 아키텍처 |
mcp://project/tools-reference |
MCP 도구 참조 |
mcp://concepts/{category}/{document} |
동적 개념 문서 조회 |
동작 원리
아키텍처 개요
┌─────────────────────────────────────────────────────────────────┐
│ MCP Client (Claude Desktop 등) │
│ - MCP Protocol 통신 │
└────────────────────────────┬────────────────────────────────────┘
│
│ MCP Protocol (stdio/HTTP)
│
┌────────────────────────────▼────────────────────────────────────┐
│ Logseq MCP Server (NestJS) │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Tools │ │ Resources │ │ Prompts │ │
│ │ (Actions) │ │ (Documents) │ │ (Templates) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────────────────┘ │
│ │ │ │
│ └─────────┬───────┘ │
│ │ │
│ ┌─────────▼────────┐ │
│ │ Logseq Client │ │
│ │ (HTTP Wrapper) │ │
│ └─────────┬────────┘ │
└───────────────────┼────────────────────────────────────────────┘
│
│ HTTP API (REST)
│
┌───────────────────▼────────────────────────────────────────────┐
│ Logseq Application │
│ - Graph Database │
│ - HTTP API Server (Port 12315) │
└─────────────────────────────────────────────────────────────────┘
주요 컴포넌트
-
MCP Tools (
src/tools/)- MCP Protocol의 Tool 제공
- 사용자 요청을 Logseq API 호출로 변환
- 입력 검증 (Zod 스키마)
-
MCP Resources (
src/resources/)- 정적 문서 및 컨텍스트 제공
- 프로젝트 개념 문서 노출
-
MCP Prompts (
src/prompts/)- 개발 워크플로우 템플릿
- AI 에이전트 가이드라인
-
Logseq Client (
src/logseq/)- Logseq HTTP API 래퍼
- 에러 처리 및 타입 안전성
따라하기 가이드
단계 1: Logseq 설정
-
Logseq 설치
- Logseq 공식 사이트 에서 다운로드
-
HTTP Server 활성화
Logseq 실행 → Settings → Advanced → API Server ✅ Enable HTTP APIs server Port: 12315 (기본값) -
API Token 생성
Settings → Advanced → API Server → Generate Token → 토큰 복사 (예: abc123def456...)
단계 2: MCP 서버 설정
-
프로젝트 클론 및 설치
cd logseq-mcp pnpm install -
환경 변수 설정
# .env 파일 생성 cat > .env << 'EOF' # Logseq 연결 설정 LOGSEQ_HOST=127.0.0.1 LOGSEQ_PORT=12315 LOGSEQ_TOKEN=your-api-token-here # 프로젝트 설정 PROJECT_NAME=ego DOCS_PATH=../concepts EOF # 실제 토큰으로 교체 # vi .env 로 LOGSEQ_TOKEN 수정 -
서버 시작
pnpm run start:dev정상 실행 시 출력:
[Nest] 12345 - 12/02/2024, 10:00:00 AM LOG [NestFactory] Starting Nest application... [Nest] 12345 - 12/02/2024, 10:00:00 AM LOG [InstanceLoader] AppModule dependencies initialized [Nest] 12345 - 12/02/2024, 10:00:00 AM LOG [McpServer] MCP Server started
단계 3: VS Code GitHub Copilot 연동 (권장)
VS Code 1.85+ 버전과 GitHub Copilot 확장이 필요합니다.
-
mcp.json 파일 복사 및 수정
# 워크스페이스 설정 (프로젝트별 설정) mkdir -p .vscode cp logseq-mcp/mcp.json.example .vscode/mcp.json # mcp.json 수정 code .vscode/mcp.json -
mcp.json 설정 형식
{ "$schema": "https://raw.githubusercontent.com/microsoft/vscode/main/extensions/chat/syntaxes/mcp.schema.json", "servers": { "logseq-mcp": { "command": "node", "args": [ "/path/to/logseq-mcp/dist/main.js" ], "env": { "LOGSEQ_HOST": "127.0.0.1", "LOGSEQ_PORT": "12315", "LOGSEQ_TOKEN": "your-logseq-api-token", "PROJECT_NAME": "my-project", "DOCS_PATH": "/path/to/docs" } } } } -
환경 변수 활용 (팀 공유 시 권장)
{ "servers": { "logseq-mcp": { "command": "node", "args": ["${workspaceFolder}/logseq-mcp/dist/main.js"], "env": { "LOGSEQ_HOST": "127.0.0.1", "LOGSEQ_PORT": "12315", "LOGSEQ_TOKEN": "${env:LOGSEQ_TOKEN}", "PROJECT_NAME": "ego", "DOCS_PATH": "${workspaceFolder}/concepts" } } } }# 각 팀원이 환경 변수 설정 export LOGSEQ_TOKEN=your-personal-token -
VS Code 재시작 후 GitHub Copilot Chat에서 사용
단계 4: Claude Desktop 연결 (대안)
-
Claude Desktop 설정 파일 열기
# macOS open ~/Library/Application\ Support/Claude/claude_desktop_config.json # 또는 직접 편집 code ~/Library/Application\ Support/Claude/claude_desktop_config.json -
MCP 서버 추가
{ "mcpServers": { "logseq-mcp": { "command": "node", "args": [ "/path/to/logseq-mcp/dist/main.js" ], "env": { "LOGSEQ_HOST": "127.0.0.1", "LOGSEQ_PORT": "12315", "LOGSEQ_TOKEN": "your-api-token-here", "PROJECT_NAME": "my-project", "DOCS_PATH": "/path/to/docs" } } } } -
빌드 및 재시작
# MCP 서버 빌드 cd logseq-mcp pnpm run build # Claude Desktop 재시작
단계 5: 실제 사용 예시
Claude Desktop에서 다음과 같이 테스트:
예시 1: 오늘 할 일 기록
User: 오늘 journal에 "MCP 서버 설정 완료" 기록해줘
Claude: [logseq_add_journal_entry 호출]
✅ 오늘의 journal에 기록했습니다:
- MCP 서버 설정 완료
예시 2: 페이지 생성
User: "MCP 학습 노트" 페이지 만들어줘
Claude: [logseq_create_page 호출]
✅ "MCP 학습 노트" 페이지를 생성했습니다.
예시 3: 검색
User: "NestJS" 관련 내용 찾아줘
Claude: [logseq_search 호출]
📝 검색 결과 (3건):
1. logseq-mcp/README.md - "NestJS 기반 Logseq MCP..."
2. ...
예시 4: 개발 기록 (Dev Tool)
User: 프로젝트 진행 상황 기록해줘
- MCP 서버 초기 설정 완료
- Claude Desktop 연동 성공
Claude: [dev-log-progress 호출]
✅ ego 프로젝트에 진행 상황을 기록했습니다.
단계 6: 고급 활용
프로젝트 특화 설정
# 다른 프로젝트에 적용
cd ~/my-project
cp ~/software-park/ego/logseq-mcp/.env .env.myproject
# .env.myproject 수정
PROJECT_NAME=my-awesome-project
DOCS_PATH=./docs
# 전용 서버 실행
cd ~/software-park/ego/logseq-mcp
DOTENV_CONFIG_PATH=~/my-project/.env.myproject pnpm run start:dev
개발 프롬프트 활용
Claude에서 다음 프롬프트 사용:
Use prompt: dev-implement-feature
기능: 사용자 인증 추가
Use prompt: dev-code-review
파일: src/auth/auth.service.ts
트러블슈팅
1. "Connection refused" 에러
# Logseq HTTP Server가 실행 중인지 확인
curl http://127.0.0.1:12315/api/health
# 실패 시: Logseq 설정 확인
# Settings → Advanced → Enable HTTP APIs server ✅
2. "Invalid token" 에러
# 토큰 재생성
# Logseq → Settings → Advanced → API Server → Generate Token
# .env 파일 업데이트
LOGSEQ_TOKEN=new-token-here
3. MCP 도구가 보이지 않음
# 빌드 확인
pnpm run build
# Claude Desktop 설정 확인
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Claude Desktop 완전 재시작 (강제 종료 후 재실행)
4. 개념 문서를 찾을 수 없음
# DOCS_PATH 확인
echo $DOCS_PATH
ls -la "$DOCS_PATH"
# 환경 변수 설정 권장 (절대 경로)
export DOCS_PATH="/path/to/your/docs"
개발자 가이드
새로운 Tool 추가하기
-
Tool 파일 생성 (
src/tools/my-new.tool.ts)import { Injectable } from '@nestjs/common'; import { McpTool, ToolResult } from '@rekog/mcp-nest'; import { z } from 'zod'; import { LogseqClient } from '../logseq/logseq.client'; @Injectable() export class MyNewTool { constructor(private readonly logseq: LogseqClient) {} @McpTool({ name: 'my_new_tool', description: '새로운 기능 설명', schema: z.object({ param: z.string().describe('파라미터 설명'), }), }) async execute(args: { param: string }): Promise<ToolResult> { const result = await this.logseq.someApiCall(args.param); return { content: [{ type: 'text', text: JSON.stringify(result) }], }; } } -
ToolsModule에 등록 (
src/tools/tools.module.ts)@Module({ imports: [LogseqModule], providers: [ // ... 기존 도구들 MyNewTool, ], }) export class ToolsModule {} -
테스트 및 빌드
pnpm run build pnpm run start:dev
디버깅
# 디버그 모드 실행
pnpm run start:debug
# VS Code에서 디버깅
# .vscode/launch.json에 설정 추가 후 F5
🔒 보안 가이드
민감 정보 취급
⚠️ 중요: 다음을 절대 저장소에 커밋하지 마세요
- API 토큰 (LOGSEQ_TOKEN)
- 비밀번호
- 개인 정보 (이메일, 전화번호, 주소)
- 사용자 이름이 포함된 절대 경로
안전한 관리법
-
환경 변수 사용
# 로컬 개발 export LOGSEQ_TOKEN="your-token" pnpm run start:dev -
.env 파일 관리
.env파일은.gitignore에 등록되어 있습니다.env.example만 저장소에 커밋하세요
-
토큰 노출 시 대응
- Logseq에서 즉시 토큰 폐기 및 새 토큰 발급
- 모든 클라이언트에서 새 토큰으로 업데이트
-
코드 리뷰
- 절대 경로나 토큰이 로그/에러 메시지에 노출되지 않는지 확인
- 민감한 데이터는 마스킹하여 로깅
라이선스
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.