deposium_MCPs

theseedship/deposium_MCPs

3.2

If you are the rightful owner of deposium_MCPs and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a comprehensive overview of the Deposium MCP server, which integrates DuckDB, Supabase, and MinIO for optimized document search and retrieval.

Tools
4
Resources
0
Prompts
0

Deposium MCPs

MCP (Model Context Protocol) server for DuckDB, Supabase and MinIO integration - RAG-optimized document search.

๐Ÿš€ Overview

This MCP server provides a unified interface for document search and retrieval, combining:

  • DuckDB for analytical queries on Parquet files stored in MinIO
  • Supabase for metadata, vector embeddings (pgvector), and graph relations
  • Redis for intelligent caching
  • MinIO for document and Parquet storage

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Claude/LLMs     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚ MCP Protocol
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  MCP Server      โ”‚ Port 4001
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Tools:           โ”‚
โ”‚ โ€ข search.hub     โ”‚
โ”‚ โ€ข corpus.stats   โ”‚
โ”‚ โ€ข vector.search  โ”‚
โ”‚ โ€ข embed.schedule โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ–ผ         โ–ผ        โ–ผ         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚DuckDB  โ”‚โ”‚Supabaseโ”‚โ”‚ Redis  โ”‚โ”‚ MinIO  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js >= 22
  • PostgreSQL with pgvector extension (via Supabase)
  • MinIO or S3-compatible storage
  • Redis (optional but recommended)
  • Ollama (optional, for embeddings)

Local Setup

  1. Clone the repository:
git clone https://github.com/nicolas-geysse/deposium_MCPs.git
cd deposium_MCPs
  1. Install dependencies:
npm install
  1. Copy environment variables:
cp .env.example .env
# Edit .env with your configuration
  1. Build the project:
npm run typecheck
npm run build:mcp
  1. Run the MCP server:
npm run dev:mcp  # Development mode
npm run start:mcp # Production mode

๐Ÿ› ๏ธ Available MCP Tools

search.hub

Unified search across documents using vector, keyword, and graph-based retrieval.

Input:

{
  "tenant_id": "string",
  "space_id": "string", 
  "query_text": "string",
  "top_k": 20,
  "use_vector_rel": true,
  "use_vector_kw": false,
  "use_graph": false,
  "max_depth": 2
}

corpus.stats

Get statistics about the document corpus.

Input:

{
  "tenant_id": "string",
  "space_id": "string",
  "include_details": false
}

vector.search

Direct vector search for debugging and testing.

Input:

{
  "tenant_id": "string",
  "space_id": "string",
  "channel": "relations|keywords|documents",
  "query_text": "string",
  "top_k": 20
}

embed.schedule

Schedule embedding generation for documents.

Input:

{
  "tenant_id": "string",
  "space_id": "string",
  "scope": "relations|keywords|documents|all",
  "model_id": "nomic-embed-text",
  "doc_ids": [1, 2, 3],
  "priority": 5,
  "overwrite": false
}

๐Ÿš‚ Railway Deployment

  1. Create a new Railway project

  2. Add the following services:

    • PostgreSQL (with pgvector)
    • Redis
    • MinIO (or configure external S3)
  3. Deploy this repository:

railway link
railway up
  1. Set environment variables in Railway dashboard:
    • SUPABASE_URL
    • SUPABASE_SERVICE_KEY
    • MINIO_ENDPOINT
    • MINIO_ACCESS_KEY
    • MINIO_SECRET_KEY
    • REDIS_URL

๐Ÿ”— Claude Desktop Integration

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "deposium": {
      "command": "node",
      "args": ["/path/to/deposium_MCPs/dist/mcp-server.js"],
      "env": {
        "MCP_MODE": "stdio",
        "SUPABASE_URL": "your-url",
        "SUPABASE_SERVICE_KEY": "your-key",
        "MINIO_ENDPOINT": "localhost:9000",
        "MINIO_ACCESS_KEY": "minioadmin",
        "MINIO_SECRET_KEY": "minioadmin"
      }
    }
  }
}

๐Ÿ“Š Database Schema

Supabase Tables

-- Document entities
CREATE TABLE document_entities (
  tenant_id UUID,
  space_id UUID,
  doc_id BIGINT,
  entity_key TEXT,
  entity_type TEXT,
  mentions JSONB[],
  PRIMARY KEY (tenant_id, space_id, doc_id, entity_key)
);

-- Entity relations
CREATE TABLE entity_relations (
  tenant_id UUID,
  space_id UUID,
  from_entity TEXT,
  to_entity TEXT,
  relation_type TEXT,
  doc_ids BIGINT[],
  strength REAL,
  PRIMARY KEY (tenant_id, space_id, from_entity, to_entity, relation_type)
);

-- Vector embeddings
CREATE TABLE rel_vec (
  tenant_id UUID,
  space_id UUID,
  embedding vector(768),
  -- ... other fields
);

MinIO Structure

minio/
โ”œโ”€โ”€ tenants/
โ”‚   โ”œโ”€โ”€ {tenant_id}/
โ”‚   โ”‚   โ”œโ”€โ”€ spaces/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ {space_id}/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ blocks/*.parquet
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ entities/*.parquet
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ documents/*.json

๐Ÿงช Testing

# Run type checking
npm run typecheck

# Test with Claude Desktop
npm run dev:mcp

# Test tool directly
curl -X POST http://localhost:4001/tools/call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "corpus.stats",
    "arguments": {
      "tenant_id": "test",
      "space_id": "default"
    }
  }'

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

MIT

๐Ÿ™ Acknowledgments

๐Ÿ“ง Contact

For questions or support, please open an issue on GitHub.