🚀 Lspace API與MCP服務器
Lspace可消除上下文切換的摩擦,讓你從任何AI會話中捕獲見解,並立即在所有工具中使用這些見解,將分散的對話轉化為持久、可搜索的知識。
🚀 快速開始
本指南將幫助你設置Lspace服務器,並將其配置為與Model Context Protocol(MCP)客戶端(如Cursor或Claude Desktop)一起使用。
A. 前提條件
- Node.js:建議使用LTS版本(包含npm)。可從 nodejs.org 下載。
- npm:隨Node.js一同安裝。
- Git:可從 git-scm.com 下載。
B. 克隆、安裝並構建Lspace服務器 這些步驟將準備好Lspace服務器代碼,以便MCP客戶端執行。
- 克隆Lspace服務器倉庫:
git clone https://github.com/Lspace-io/lspace-server.git
- 進入目錄:
cd lspace-server
- 安裝依賴項:
npm install
- 構建項目(將TypeScript編譯為JavaScript並存儲在
dist/
文件夾中):
npm run build
構建完成後,MCP服務器的主腳本將是該目錄根目錄下的 lspace-mcp-server.js
。
C. 配置你的Lspace服務器 在MCP客戶端使用Lspace之前,你需要對Lspace進行配置:
- 環境變量(
.env
文件)- 複製示例環境文件:
cp .env.example .env
- 編輯新的 `.env` 文件。
- **至關重要的是,設置你的 `OPENAI_API_KEY`**。
- 根據需要查看並調整其他變量(請參閱 `.env.example` 中的註釋)。
- Lspace倉庫和憑證(
config.local.json
文件)- 此文件告訴Lspace要管理哪些倉庫,並提供憑證(如GitHub PAT)。它不會提交到Git。
- 複製示例配置文件:
cp config.example.json config.local.json
- 編輯 `config.local.json`:
- 在 `credentials.github_pats` 下添加你的GitHub PAT。如果你需要有關創建PAT的詳細說明,請參閱下面的 [瞭解Lspace的GitHub個人訪問令牌(PAT)](#瞭解lspace的github個人訪問令牌pats) 部分。
- 在 `repositories` 數組中定義Lspace應管理的本地或GitHub倉庫。
- 有關詳細結構和示例,請參閱“手動管理倉庫(`config.local.json`)”部分。
D. 在MCP客戶端中配置Lspace
lspace-mcp-server.js
腳本(位於你的 lspace-server
目錄中)是MCP客戶端將執行的腳本。你需要告訴MCP客戶端如何找到並運行此腳本。
⚠️ 重要提示
在以下客戶端配置中,將
/actual/absolute/path/to/your/lspace-server/
替換為你克隆並構建lspace-server
的目錄的實際絕對文件路徑。
- Cursor
Cursor可以通過JSON文件進行配置。你可以按項目或全局進行設置:
- 項目配置:在項目的根目錄下創建一個
.cursor/mcp.json
文件。 - 全局配置:在用戶主目錄下創建一個
~/.cursor/mcp.json
文件。
- 項目配置:在項目的根目錄下創建一個
Cursor的示例 mcp.json
文件:
{
"mcpServers": {
"lspace-knowledge-base": { // 你可以在此處選擇任何名稱
"command": "node",
"args": ["/actual/absolute/path/to/your/lspace-server/lspace-mcp-server.js"],
"env": {
// lspace-server目錄中的.env文件應會自動被拾取。
// 僅當你需要為Cursor專門覆蓋這些環境變量,或者未找到.env文件時,才在此處添加環境變量。
// "OPENAI_API_KEY": "your_openai_key_if_not_in_lspace_env"
}
}
}
}
- 請記住替換 `args` 中的佔位符路徑。
- 創建或修改此配置後,重新啟動Cursor。
- Claude Desktop
Claude Desktop使用一箇中央JSON配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\\Claude\\claude_desktop_config.json
- macOS:
如果此文件不存在,當你轉到“設置”>“開發者”>“編輯配置”時,Claude Desktop可能會創建它。
示例 claude_desktop_config.json
內容:
{
"mcpServers": {
"lspace": { // 你可以在此處選擇任何名稱
"command": "node",
"args": ["/actual/absolute/path/to/your/lspace-server/lspace-mcp-server.js"]
// "env": { ... } // 與Cursor類似的環境變量考慮因素
}
}
}
- 確保你替換了 `args` 中的佔位符路徑。
- 保存對此文件的更改後,重新啟動Claude Desktop。
配置完MCP客戶端後,它應該能夠啟動並與你的Lspace服務器進行通信,從而允許你在客戶端中使用Lspace工具並訪問已配置的知識庫。
瞭解Lspace的GitHub個人訪問令牌(PATs)
Lspace需要GitHub個人訪問令牌(PATs)來代表你與GitHub倉庫進行交互。這包括克隆倉庫、讀取內容,以及重要的是,通過提交和推送更改來寫入新內容(例如,生成的知識庫文章、處理後的原始輸入)。
為什麼需要PATs? PATs是一種安全的方式,可在不需要你密碼的情況下授予Lspace訪問你的GitHub賬戶的權限。你可以控制授予每個PAT的權限(範圍),並隨時撤銷它們。
為Lspace創建GitHub PAT
- 轉到你的GitHub 開發者設置。
- 點擊“個人訪問令牌”,然後點擊“令牌(經典)”。為了獲得更精細的控制,你可以探索“細粒度令牌”,但“令牌(經典)”通常更適合此類應用。
- 點擊“生成新令牌”(然後點擊“生成新令牌(經典)”)。
- 為你的令牌提供一個描述性名稱,例如 “lspace-server-access”。
- 設置令牌的過期時間。
- 選擇範圍:為了讓Lspace完全管理你的倉庫,包括讀取、寫入、提交和推送,你必須選擇
repo
範圍。此範圍授予對公共和私有倉庫的完全控制權。(說明性圖像鏈接,實際界面可能會有所不同)
- 點擊“生成令牌”。
- 重要提示:立即複製生成的令牌。你將無法再次查看它。請安全存儲。
在Lspace中使用PATs(config.local.json
)
在你的 config.local.json
文件中,你將在 credentials.github_pats
部分為你的PAT定義一個 alias
,然後在GitHub倉庫配置中引用此 pat_alias
。有關更多詳細信息,請參閱“手動管理倉庫(config.local.json
)”部分。
config.local.json
中的示例 credentials
塊:
{
"credentials": {
"github_pats": [
{
"alias": "my_lspace_pat",
"token": "ghp_YOUR_COPIED_GITHUB_TOKEN_HERE"
}
// 如果需要,你可以添加更多具有不同別名的PAT
]
},
// ... 你的倉庫配置的其餘部分 ...
}
✨ 主要特性
- 可自託管服務:用於git操作、搜索和大語言模型集成。
- Lspace MCP服務器:通過
lspace-mcp-server.js
實現Model Context Protocol(MCP),允許AI代理和其他工具以編程方式與Lspace功能進行交互。(有關MCP的更多信息,請參閱 modelcontextprotocol.io)。 - 多倉庫管理:支持多個git提供商(本地、GitHub)。
- AI編排:用於自動文檔分類、組織和總結。
- 知識庫生成:用於創建類似維基百科的倉庫內容綜合。
- 雙結構倉庫:包含原始文檔和綜合知識庫。
- 時間線跟蹤:用於文檔操作。
- 可擴展架構:用於自定義集成。
倉庫結構
Lspace採用雙結構倉庫架構:
- 原始文檔存儲(
/.lspace/raw_inputs/
)- 用戶上傳的原始文檔或通過MCP服務器/API攝取的文檔。
- AI輔助分類和組織。
- 元數據增強和結構化格式化。
- 操作記錄在
/.lspace/timeline.json
中。
- 知識庫綜合(倉庫根目錄)
- 從原始文檔生成的類似維基百科的AI結構。
- 一個入口頁面(通常是倉庫根目錄中的
README.md
)提供概述。 - 綜合多個文檔信息的主題頁面。
- 交叉引用和指向源文檔的鏈接。
配置詳情
除了快速開始部分,以下是更多配置細節:
Lspace配置文件(config.local.json
)
此文件對於定義倉庫連接(本地路徑、GitHub倉庫詳細信息)和憑證(如GitHub PATs)至關重要。
有關其結構,請參閱“手動管理倉庫(config.local.json
)”部分。
大語言模型提示配置
指導大語言模型進行文檔處理和知識庫生成的提示集中在 src/config/prompts.ts
中。修改這些提示可自定義AI行為。
運行完整的API服務器(可選)
如果你除了MCP服務器之外還需要RESTful API端點(例如,用於Web應用程序集成或直接HTTP調用),或者用其替代MCP服務器:
- 確保你的
.env
和config.local.json
已按上述說明進行設置。 - 構建項目:
npm run build
- 運行開發服務器:
npm run dev
- 或者,進行生產部署:
npm start
這些腳本通常會啟動 src/index.ts
中定義的完整應用程序,其中可能包括REST API和MCP功能。lspace-mcp-server.js
腳本是專門為僅進行MCP交互而優化的入口點。
手動管理倉庫(config.local.json
)
你可以通過直接編輯本地的 config.local.json
文件來管理Lspace連接的倉庫。此文件不會提交到版本控制(它在 .gitignore
中)。倉庫中提供了一個示例模板 config.example.json
。
⚠️ 重要提示
始終在
config.local.json
中進行更改。
文件的基本結構包括一個 credentials
列表(用於GitHub等服務)和一個 repositories
列表。
{
"credentials": {
"github_pats": [
{
"alias": "your_github_pat_alias",
"token": "ghp_yourgithubpersonalaccesstoken"
}
]
},
"repositories": [
{
"name": "My Local Project",
"type": "local",
"path": "/path/to/your/local/git/repository",
"path_to_kb": ".",
"id": "your_unique_id_for_this_repo"
},
{
"name": "My Awesome GitHub Project",
"type": "github",
"owner": "your-github-username-or-org",
"repo": "your-repository-name",
"branch": "main",
"pat_alias": "your_github_pat_alias",
"path_to_kb": ".",
"id": "another_unique_id"
}
]
}
添加本地倉庫
- 確保倉庫是有效的Git倉庫。
- 在
config.local.json
的repositories
數組中添加一個新對象(見上文示例)。name
:一個人類可讀的名稱。type
:必須為"local"
。path
:本地Git倉庫的絕對路徑。path_to_kb
(可選):倉庫內知識庫根目錄的相對路徑(例如,docs/kb
)。默認為.
(倉庫根目錄)。id
(可選):一個唯一的UUID。如果省略,將自動生成一個。
添加GitHub倉庫
- 確保你有一個具有
repo
範圍的GitHub個人訪問令牌(PAT)。 - 將你的PAT添加到
credentials.github_pats
部分(見上文示例)。 - 在
repositories
數組中添加一個新對象(見上文示例)。name
、type
("github"
)、owner
、repo
、branch
、pat_alias
、path_to_kb
、id
如上述說明。
編輯 config.local.json
後,重啟Lspace MCP服務器或API服務器以使更改生效。然後,Lspace將嘗試將新的GitHub倉庫克隆到 REPO_BASE_PATH
指定的目錄(或其默認的 cloned-github-repos
)中,並使所有已配置的倉庫可用。
📄 許可證
本項目採用商業源許可證1.1(BSL 1.1)。
這通常意味著:
- 你可以自由使用、修改和自託管該軟件,用於個人項目、研究和內部非商業用途。
- 商業使用(例如,使用此軟件提供付費服務)受到限制,需要從Robin Spottiswoode獲得單獨的商業許可證,或者使用官方的Lspace Cloud託管服務(如果可用)。
- 每個版本從公開發布日期起一年後,該版本的軟件將自動轉換為Apache許可證2.0,這是一個寬鬆的開源許可證。
有關完整的許可證文本,請參閱倉庫中的 LICENSE
文件。













