You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sinkduce is built on a strict philosophy: **Never hoard knowledge—only sink what truly matters.** Unlike massive, bloated traditional wikis or knowledge bases that encourage endless data hoarding (turning into "knowledge graveyards"), Sinkduce is designed as a **high-fidelity cognitive filter**. It is tailored for professionals managing multiple complex projects and students navigating multiple courses. Instead of blindly filling the vector pool with unread external text files, Sinkduce turns real-world conversations, lectures, and curated conceptual notes into precise structural units, allowing you to interact with your core operational memory under a context-isolated architecture.
10
10
11
-
> *Note: Sinkduce is currently optimized as a hyper-efficient personal system. Server-side deployments and multi-user collaborative project memory are planned in future enterprise releases.*
12
-
13
11
## 🚀 Quick Start
14
12
15
13
**Prerequisites**: Docker
@@ -120,43 +118,73 @@ All optional. Copy `.env.template` to `.env` to customize ports:
120
118
121
119
## 🔌 MCP Server Interface
122
120
123
-
Sinkduce ships with a built-in [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that exposes **40 atomic tools** across 8 domains for AI coding agents. Use it with Claude Code, Cursor, or any MCP-compatible client to query and manage your knowledge bases directly from your IDE.
121
+
Sinkduce ships with a built-in [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that exposes **43 atomic tools** across 8 domains for AI coding agents. Use it with Claude Code, Cursor, or any MCP-compatible client to query and manage your knowledge bases directly from your IDE.
124
122
125
123
### Architecture
126
124
127
125
The MCP server is mounted under `/mcp` on the same FastAPI process as the REST API (default port `18900`). It shares the main app lifespan — the `services` singleton and `task_manager` are reused, so no separate process is needed. Transport is HTTP via the [Streamable HTTP](https://modelcontextprotocol.io/) protocol.
128
126
129
127
### Quick Setup (Claude Code)
130
128
131
-
Add to your Claude Code MCP settings (`~/.claude/settings.json` or project-level `.claude/settings.json`):
129
+
Add to your Claude Code MCP settings (`~/.claude/settings.json` or project-level `.mcp.json`):
132
130
133
131
```json
134
132
{
135
133
"mcpServers": {
136
134
"sinkduce": {
135
+
"type": "http",
137
136
"url": "http://localhost:18900/mcp"
138
137
}
139
138
}
140
139
}
141
140
```
142
141
143
-
Prerequisite: start the backend first (`uvicorn src.main:app --port 18900 --reload` or `docker compose up -d`). Claude Code connects to the running server — no subprocess is spawned.
142
+
For Claude Code, the simplest setup is a `.mcp.json` file at the project root:
143
+
144
+
```json
145
+
{
146
+
"mcpServers": {
147
+
"sinkduce": {
148
+
"type": "http",
149
+
"url": "http://localhost:18900/mcp"
150
+
}
151
+
}
152
+
}
153
+
```
154
+
155
+
Prerequisite: start the backend first (`docker compose up -d` or `uvicorn src.main:app --port 18900 --reload`). Claude Code connects to the running server — no subprocess is spawned.
156
+
157
+
### File Upload via Staging
158
+
159
+
MCP tool parameters appear in the LLM conversation transcript. To prevent file content from leaking into context, Sinkduce uses a **side-channel staging** pattern. Instead of passing file bytes through MCP tools, use the HTTP staging endpoint:
The LLM uses its Bash tool to execute the curl command — file bytes travel over HTTP only and never enter the LLM context.
144
172
145
-
### Available MCP Tools (40 atomic tools)
173
+
### Available MCP Tools (43 atomic tools)
146
174
147
-
**Collections (5)**: `list_collections`, `get_collection`, `create_collection`, `update_collection_config`, `delete_collection`. `update_collection_config` rejects destructive fields (`chunk_mode`, `embedding_*` other than `embedding_provider_id`) that would require a full re-index — change those via the UI.
175
+
**Collections (5)**: `list_collections`, `get_collection`, `create_collection`, `update_collection_config`, `delete_collection`. `update_collection_config` rejects destructive fields (`chunk_mode`, `embedding_*`) that would require a full re-index — change those via the UI.
**Documents (6)**: `list_documents`, `upload_document_from_staging` (unified upload via staging token), `delete_document`, `get_file_chunks`, `get_document_text`, `set_document_definitive`. For file upload, use the HTTP staging endpoint above — the MCP tool only accepts a staging token.
0 commit comments