Spreadsheet DB

io.github.ManddarinShop由 GitHub 帳號 ManddarinShop 發布v0.1.1更新於 Oct 25, 2026

SQLite-authoritative entity database with an async Google Sheets projection for AI agents.

已驗證STDIO僅桌面資料庫資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,為助理提供具型別的 SQLite 實體資料庫,並將已提交的變更非同步投影到 Google 試算表檢視。

可以做什麼
透過作為權威資料來源的本機 SQLite 儲存區讀寫具型別的實體,一般操作不必等待 Google 試算表。提交變更後,變更會非同步投影到 Google 試算表,供人工檢視與輕量協作。輪詢試算表中的人工編輯,將其接受進 SQLite 或記錄為衝突,而不是默默覆寫。偵測非預期的欄位變更與重複表頭,並對持久化寫入進行重試與去重。未設定試算表網址時以純本機模式執行,不接觸 Google。
適用情境
適合助理為 MVP 或小型應用提供快速的本機結構化儲存,同時人們仍希望在熟悉的試算表中檢視與少量編輯資料。當 SQLite 應保持權威、試算表僅作為面向人的檢視時選用;若需要原始試算表存取或生產級關聯式資料庫,其他工具更合適。
執行需求
以本機程序執行(npm 套件,stdio)。需要 Node.js,以及包含實體設定檔的工作目錄,或透過 HIKOUTEI_MCP_CONFIG 指定路徑。Google 試算表同步為選用,需要 HIKOUTEI_SYNC_SPREADSHEET_URL 以及指向服務帳戶金鑰檔的 GOOGLE_APPLICATION_CREDENTIALS;文件中的安裝指令會建立 Cloud 專案、服務帳戶、金鑰與試算表。
安裝前請注意
Google 試算表路徑需要由 GOOGLE_APPLICATION_CREDENTIALS 引用的服務帳戶金鑰檔,該檔可存取 Cloud 專案與試算表,請勿納入版本控制。啟用同步會把資料寫入第三方 Google 服務。伺服器會寫入、更新與刪除 SQLite 記錄,並可將變更推送到試算表,試算表中的人工編輯也會回流到資料庫,因此可能出現衝突與非預期覆寫。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Spreadsheet DB,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

한국어 | 日本語

[Hikoutei]

Hikoutei

Keep your app fast with SQLite. Keep your workflow visible in Google Sheets.

A typed repository and safe write layer for Google Sheets-backed MVPs: your application reads and writes local SQLite through typed entities, and committed changes are asynchronously projected to Google Sheets for human review and lightweight collaboration.

npm · Quick start · Issues

[npm version] [license] [TypeScript]

What is Hikoutei?

Hikoutei gives TypeScript applications a typed entity API backed by local SQLite, then asynchronously synchronizes committed changes to Google Sheets.

Your application does not wait on Google Sheets for normal reads and writes. Sheets remains available for inspection, operations, and lightweight human collaboration.

Hikoutei is not a raw Sheets API wrapper, not a replacement for PostgreSQL, and it does not treat Google Sheets as the authoritative application database. SQLite is the source of truth; Sheets is the human-facing view.

Why Hikoutei?

  • Define typed entities instead of manually converting Sheet rows.
  • Read and write through local SQLite without waiting for Google Sheets.
  • Synchronize committed changes to Sheets in the background.
  • Detect unexpected column changes and duplicate headers.
  • Avoid overwriting newer Sheet edits during conflicting updates.

Hikoutei does not replace google-spreadsheet or @googleapis/sheets — it sits one level above them. If you only need raw spreadsheet access, use the API client directly.

CapabilityHikouteigoogle-spreadsheet@googleapis/sheets
Typed entity model✅❌❌
Fast local application reads✅❌❌
Async projection to Sheets✅❌❌
Durable write retry and deduplication✅❌❌
Conflict-aware Sheet updates✅❌❌
Direct row and cell manipulationLimited✅✅
Full Google Sheets API accessProvider onlyPartial✅

Installation

sh
npm install hikoutei @mikro-orm/core @mikro-orm/sql

Installing the library does not touch Google Cloud — it runs local-only (SQLite) by default. Run the setup command below only when you want Sheet sync.

Setup (Google Sheets sync)

One-time, interactive. Install the gcloud CLI, then:

sh
npx hikoutei setup

This creates the Cloud project, service account, key, and spreadsheet, and writes .env for you. Without HIKOUTEI_SYNC_SPREADSHEET_URL, createTypedSheets() stays local-only (SQLite). Details, credential pools, quota guidance, and manual setup: Google Sheets setup.

Usage

Define a scalar entity and use the local SQLite authority through a request-local manager.

ts
import { createTypedSheets, defineTypedSheetsEntity } from "hikoutei";
const User = defineTypedSheetsEntity({  name: "User",  tableName: "users",  properties: {    id: { type: "string", primary: true },    name: { type: "string" },    age: { type: "number" },    active: { type: "boolean" },  },});
const hikoutei = await createTypedSheets({  dbName: "./hikoutei.sqlite",  entities: [User],});
const em = hikoutei.em.fork();const user = em.create(User, { id: "u1", name: "Ada", age: 36, active: true });em.persist(user);await em.flush();
user.name = "Ada Lovelace";await em.flush();
const loaded = await em.findOne(User, { id: "u1" });if (loaded !== null) {  em.remove(loaded);  await em.flush();}

More reads, transactions, and operators: Quick start.

Writes commit to local SQLite immediately — the request never waits on Google. Human edits in the Sheet flow back through polling — accepted into SQLite or recorded as conflicts, never silently overwritten. The full pipeline (outbox, delivery, conflict handling) is covered in Write and synchronization flow.

Learn more

License

Hikoutei is released under the MIT License.

來源:README.md,提交 d745ac8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分