AI Engineer World's Fair 2026

Turning My Obsidian Vault Into a Local AI Engineer — Filip Makraduli, Superlinked

Slide chapters

28 slide and demo groups · Timestamps are approximate. 36 additional groups were omitted from this pass.

Private AI on my own data

Makraduli wanted an agent to work across his Obsidian files while keeping the data private and self-hosted, with a choice of open models.

Text in image
SUPERLINKED · WORKSHOP

I wanted private AI on my own data

→ It started in Obsidian: everything I keep, as local markdown I own.
→ I wanted an agent over it, but the data was private and the good models were rented.
→ The goal: keep it private and self-hosted, on any open model, even ones I fine-tune.

GITHUB ★ 2.1K
CONTACT US →

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
1 / 42

Everything I keep lives in Obsidian

Makraduli shows a synthetic contract vault as an Obsidian graph. He wants an agent to work across his linked Markdown files while keeping private data in his own cloud.

Text in image
WHERE IT STARTED

Everything I keep lives in Obsidian, as local markdown

Obsidian is just linked markdown files I own. I wanted an agent to work across them, but the moment a private file goes to a frontier model, it has left my cloud. I wanted the AI without handing over the data. (Shown: the synthetic contract vault we build live in the demo.)

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE
2 / 42

Interface text:
Graph view
Filters
Groups
Display
Forces
[illegible graph labels]

Three requirements

The proposed SIE MCP edge returns small artifacts to reduce repeat document costs, keeps sensitive inputs in the user's cloud, and supports model choice and task-specific fine-tuning.

Text in image
WHAT IT WOULD TAKE

To build it right, I needed three things

01
CHEAPER: SMALL ARTIFACTS
Return a small artifact to the agent instead of re-billing the whole document on every turn.

02
PRIVATE: NOTHING LEAVES
The raw documents, the PII, and the cluster keys all stay inside my own cloud.

03
ADAPTABLE: YOUR MODELS
Choose the models, route each job to the right one, and fine-tune with a LoRA when the domain needs it.

The rest of this workshop is how one small service, the SIE MCP edge, delivers all three.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE
3 / 42

Private documents and the easy way

The slide warns that uploading a 40-page PDF to a closed model API sends the raw file and its PII away while re-billing ~80k tokens every turn.

Text in image
Your agent needs to read private documents. The easy way leaks them.

Upload a 40-page PDF and you re-bill ~80k tokens every turn and hand the raw file, plus its PII, to a closed model API. The work you wanted to keep private is the work you just sent away.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text:
4 / 42

SIE MCP package directory and README

Makraduli opens the SIE MCP package. Its README describes offloading private document work to open models on your GPUs and returning a small artifact to Claude.

Text in image
sie-mcp: the SIE MCP edge

Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.

sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.

Claude

Interface text:
superlinked / sie
Code
Issues 5
Pull requests 10
Agents
Actions
Wiki
Security and quality 125
Insights
Settings
main
sie / packages / sie_mcp /
Go to file
Add file
github-actions[bot] release: v0.6.13
9220205 · 4 days ago
History
Name | Last commit message | Last commit date
..
docs | release: v0.6.13 | 4 days ago
examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
plugin | release: v0.6.13 | 4 days ago
src/sie_mcp | release: v0.6.13 | 4 days ago
tests | release: v0.6.13 | 4 days ago
Dockerfile | release: v0.6.10 | last week
README.md | release: v0.6.13 | 4 days ago
pyproject.toml | release: v0.6.10 | last week
README.md

5:10Demo milestone · Completed build

Show 2 builds
  1. 5:03

    GitHub directory listing for the SIE MCP package, including documentation, examples, source, and tests.

    Text in image
    sie / packages / sie_mcp /
    
    Name | Last commit message | Last commit date
    ..
    docs | release: v0.6.13 | 4 days ago
    examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
    plugin | release: v0.6.13 | 4 days ago
    src/sie_mcp | release: v0.6.13 | 4 days ago
    tests | release: v0.6.13 | 4 days ago
    Dockerfile | release: v0.6.10 | last week
    README.md | release: v0.6.13 | 4 days ago
    pyproject.toml | release: v0.6.10 | last week
    
    README.md
    
    Interface text:
    superlinked / sie
    Code
    Issues 5
    Pull requests 10
    Agents
    Actions
    Wiki
    Security and quality 125
    Insights
    Settings
    main
    Go to file
    Add file
    github-actions[bot] release: v0.6.13
    9220205 · 4 days ago
    History
  2. 5:10

    GitHub package directory with the SIE MCP edge README introduction.

    Text in image
    sie-mcp: the SIE MCP edge
    
    Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.
    
    sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.
    
    Claude
    
    Interface text:
    superlinked / sie
    Code
    Issues 5
    Pull requests 10
    Agents
    Actions
    Wiki
    Security and quality 125
    Insights
    Settings
    main
    sie / packages / sie_mcp /
    Go to file
    Add file
    github-actions[bot] release: v0.6.13
    9220205 · 4 days ago
    History
    Name | Last commit message | Last commit date
    ..
    docs | release: v0.6.13 | 4 days ago
    examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
    plugin | release: v0.6.13 | 4 days ago
    src/sie_mcp | release: v0.6.13 | 4 days ago
    tests | release: v0.6.13 | 4 days ago
    Dockerfile | release: v0.6.10 | last week
    README.md | release: v0.6.13 | 4 days ago
    pyproject.toml | release: v0.6.10 | last week
    README.md

MCP tools and credentials model

The MCP edge exposes document tools and separates the cluster API key from the connector secret. Its redaction tool returns redacted text and counts without a map back to the originals.

Text in image
What It Exposes

The MCP server exposes these tools:
• docs_to_markdown: convert PDF, scans, images of pages, Office files, or HTML to markdown.
• summarize_document: summarize a document or text input through the cluster.
• extract_entities: extract zero-shot entity labels such as person, organization, date, or amount.
• redact_pii: return redacted text and redaction counts.
• answer_questions: answer questions grounded in supplied document text.
• describe_image: caption and classify an image.
• extract_structured: extract schema-valid JSON from document text.
• generate_structured: generate constrained JSON, regex, or grammar output.

The generated Claude Code skill pack includes:
• superlinked-docs: general document offload skill.
• parse-document: calls docs_to_markdown.
• summarize-document: calls summarize_document.
• extract-entities: calls extract_entities.
• redact-pii: calls redact_pii.

The redaction MCP tool intentionally does not return a placeholder-to-original map. That keeps original PII from being handed back to the calling model. Use the older local sie_tools redaction flow from PR #1336 if a de-redaction map is required.

Credentials Model

There are two different credentials:
• Server operator credential: SIE_API_KEY, used by the MCP edge to call the SIE cluster gateway. Only the edge process should have this.
• Connector credential: SIE_MCP_CONNECTOR_SECRETS, used by users or agent surfaces to authenticate to /mcp. Give users this connector secret, not the cluster API key.

The edge also needs SIE_BASE_URL, the gateway URL for the SIE cluster. For an in-cluster Helm deployment this can be left unset and the chart points at the gateway service.

Quick Install For An Existing Hosted Edge

Interface text: main · sie / packages / sie_mcp / · Top

5:26Demo milestone

SIE MCP edge architecture

Claude connects over MCP to an edge in the user’s VPC, which uses sie_sdk to reach the SIE gateway. The README says raw bytes and PII reach the edge, never the model API; Claude receives a small artifact.

Text in image
sie-mcp: the SIE MCP edge

Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.

sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.

Claude
Code / desktop / claude.ai / Cowork

MCP over streamable-HTTP
Authorization: Bearer <connector-secret>

sie-mcp edge (this package, in your VPC)
holds SIE_API_KEY

Raw bytes and PII reach your edge, never the model API.

sie_sdk

SIE gateway

Interface text:
main
sie / packages / sie_mcp /
Top
https://github.com/[illegible]

5:52Demo milestone

Private contract knowledge graph example

The example uses the SIE MCP edge to parse legal documents, extract entities and redact PII. Claude Code writes to an Obsidian vault, while the agent sees only small markdown.

Text in image
Example: a private contract knowledge graph (SIE MCP edge + Obsidian)

Turn a folder of messy legal documents into a private, linked Obsidian knowledge graph. Parsing, entity extraction, and PII redaction all run on open models on your own cluster through the SIE MCP edge, so the raw documents and the personal data never reach the model API. The agent only ever sees small markdown.

An Obsidian vault is just a folder of markdown. Claude Code’s file tools write into it; the SIE MCP edge does the document processing. Nothing in this example modifies the sie_mcp package.

What is in here

Interface text:
superlinked / sie
Code · Issues 5 · Pull requests 10 · Agents · Actions · Wiki · Security and quality 125 · Insights · Settings
main / sie / packages / sie_mcp / examples / obsidian-contract-graph
Go to file · Add file
 github-actions[bot] release: v0.6.13 · 4 days ago · History
Name · Last commit message · Last commit date
..
.obsidian · release: v0.6.13 · 4 days ago
inbox · release: v0.6.13 · 4 days ago
processed-fallback · release: v0.6.13 · 4 days ago
vault · release: v0.6.13 · 4 days ago
.gitignore · release: v0.6.13 · 4 days ago
README.md · release: v0.6.13 · 4 days ago
token-savings.html · release: v0.6.13 · 4 days ago
README.md

6:09Demo milestone

Let your own models do the heavy lifting first

A service in your cloud uses open models on your GPUs to extract facts and scrub private data. Claude receives compact text, aiming for a smaller token bill and more room in the context window.

Text in image
THE BIG IDEA

Let your own models do the heavy lifting first

01
SEND IT TO YOUR EDGE
The document goes to a small service in your own cloud, not to the model API.

02
YOUR MODELS DO THE WORK
Open models on your GPUs read it, pull out the facts, and scrub the private bits.

03
AGENT GETS THE SHORT VERSION
Claude only ever sees clean, compact text, already cleared of personal data.

You get three things at once: a smaller token bill, more room in the context window, and data that never leaves your cloud.

Interface text:
Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Why this saves so many tokens

The slide reports 82.9% fewer tokens on Opus 4.8 and 86.5% on Sonnet 4.6 when comparing document text plus page images with edge-produced markdown.

Text in image
WHERE THE SAVING COMES FROM
Why this saves so many tokens

UPLOAD THE WHOLE DOC
100%
Claude bills the text of every page and an image of every page, plus all the formatting. That is the full token cost.
THE WHOLE THING

OFFLOAD IT FIRST
~15%
Your edge sends clean markdown instead. About 85% fewer tokens, measured: 82.9% on Opus 4.8 and 86.5% on Sonnet 4.6 (text plus page images vs the markdown).
ORANGE = WHAT YOU SEND, GREY = SAVED (~85%)

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
6 / 42

Why MCP, not a model API or a one-off plugin

One MCP server can provide tools to multiple clients. The agent requests a capability such as redaction; the server selects the model and pipeline while keeping the cluster key and raw data on the server side.

Text in image
WHY MCP
Why MCP, not a model API or a one-off plugin

→ MCP is the open standard for an agent to call outside tools. Build the server once, and every MCP client (Claude Code, desktop, claude.ai, Cursor) gets the tools.
→ It exposes capabilities, not models: the agent asks to "redact this", and the server decides which model and pipeline does it.
→ The work runs on the server you control, so the cluster key and the raw data stay on your side, never in the agent.
→ One connection, every surface. No bespoke integration per client.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
7 / 42

A plugin runs in the agent; the MCP edge runs in your cloud

The diagram moves document processing from the agent host to an MCP edge in your VPC. The edge holds the cluster key and raw data; only a small artifact returns to the agent.

Text in image
WHY MCP, NOT JUST A PLUGIN

A plugin runs in the agent; the MCP edge runs in your cloud

JUST A PLUGIN — runs where the agent runs
AGENT HOST · LAPTOP OR MODEL CLOUD
| cluster API key  EXPOSED
| raw document + PII  EXPOSED
| parse · extract · redact

The key and the raw data sit where the model runs, and it only works on that one host.

THE MCP EDGE — runs where your models and secrets are
AGENT
CONNECTOR SECRET ONLY
MCP →
YOUR VPC
sie-mcp edge
| cluster key
| raw bytes + PII
| tools on your GPUs

Only a small artifact returns. The key, the bytes, and the PII never leave your cloud, and one edge serves every MCP agent.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text: 8 / 42

Three tiers: the agent, the edge, and your cluster

An MCP client connects to sie-mcp in the VPC, which holds the cluster key and routes work to SIE’s queue and GPU workers. The diagram says raw bytes reach the edge and only a small artifact returns to the agent.

Text in image
HOW IT'S WIRED

Three tiers: the agent, the edge, and your cluster

TIER 1 · THE AGENT
MCP client
Claude Code, claude.ai, Cursor, Cowork. Connects once over MCP.
CONNECTOR SECRET  NO CLUSTER KEY

TIER 2 · THE EDGE
sie-mcp
In your VPC. Holds the cluster key. Stateless: auth, decode, route, redact, assemble.
THE TRUST BOUNDARY  HOLDS SIE_API_KEY

TIER 3 · THE CLUSTER
SIE
STATELESS GATEWAY
POOL WORK QUEUE (NATS)
GPU WORKERS, SCALE FROM ZERO
DOCLING  GLINER  QWEN

The cluster key lives only on the edge. The raw bytes reach the edge over MCP, never an external model API; only the small artifact crosses back to the agent.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text: 9 / 42

MCP as a standard interface

MCP gives apps and tools a shared interface. In the slide’s example, 5 apps and 10 tools need 50 bespoke connectors, versus 15 connections through MCP.

Text in image
WHY MCP, IN DEPTH · THE STANDARD INTERFACE

MCP is the interface in the middle: M times N becomes M plus N

WITHOUT A STANDARD
M × N
Every app needs a bespoke integration to every tool. 5 apps times 10 tools is 50 hand-wired connectors, each one breaking when either side changes.

WITH MCP
M + N
Each app speaks MCP once, each tool is a server once. 5 + 10 is 15, and any app reaches any tool. The same move as USB, ODBC, and LSP: agree on one interface in the middle.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
10 / 42

Host, client, and server roles

The host owns the conversation and uses one client per server. A server exposes capabilities; SIE’s edge plays that role whether it runs locally or remotely.

Text in image
WHY MCP, IN DEPTH · THE THREE ROLES

Host, client, server, and server is a role, not a place

01
HOST
The AI app the user talks to (Claude Desktop, Claude Code, Cursor). It owns the conversation, the model, and the decision of what the model may reach.

02
CLIENT
A connector inside the host, one per server, holding a single stateful connection. Three servers means three clients, each its own trust boundary.

03
SERVER
A program that exposes capabilities. The SIE edge is a server. It can be a laptop subprocess or a hosted service: server is a role, not a place.

The SIE edge only ever sees the client half: we are a server, we respond. Local vs remote is a transport choice, not a question of who is the server.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
11 / 42

JSON-RPC initialization handshake

The client proposes a protocol version and capabilities; the server responds with its version and capabilities. A final notification confirms the session is open.

Text in image
WHY MCP, IN DEPTH · DATA AND TRANSPORT

The data layer is JSON-RPC 2.0; the handshake pins the version and the capabilities

the initialize handshake

// 1. client -> server: initialize (propose a version + capabilities)
{ "jsonrpc": "2.0", "id": 1, "method": "initialize",
  "params": { "protocolVersion": "2025-06-18",
              "capabilities": { "sampling": {} },
              "clientInfo": { "name": "claude-ai" } } }

// 2. server -> client: the version + capabilities it will actually use
{ "jsonrpc": "2.0", "id": 1,
  "result": { "protocolVersion": "2025-06-18",
              "capabilities": { "tools": { "listChanged": true } },
              "serverInfo": { "name": "sie-edge" } } }

// 3. client -> server: confirm the session is open (notification, no id)
{ "jsonrpc": "2.0", "method": "notifications/initialized" }

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text:
12 / 42

Tools, resources, and prompts

MCP servers can expose callable tools, read-only resources, and reusable prompts. The SIE edge uses tools only: it responds to requests without calling back to the host or user.

Text in image
WHY MCP, IN DEPTH · THE PRIMITIVES

A server exposes tools, resources, and prompts

01
TOOLS
Functions the model calls to do something. Discovered with tools/list, run with tools/call. All eight SIE capabilities are tools.

02
RESOURCES
Read-only context the app pulls in: a file, a record, a page. Nouns, not verbs. The edge does not lean on these.

03
PROMPTS
Reusable templates the user invokes, often as slash commands: a known-good workflow the server packages.

The client can also expose Sampling (the server asks the host's model to generate), Elicitation (the server asks the user), and Roots (filesystem bounds). The SIE edge uses none of them: it is Tools-only, it never calls back to the host or the user, and it never touches your files. It only responds.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text:
13 / 42

Capability negotiation and live discovery

MCP peers exchange capabilities at initialization. When a server signals a tool-list change, the client refreshes the list, letting agents pick up new tools without redeployment.

Text in image
Capabilities are negotiated; tools are discovered live

WHY MCP, IN DEPTH · NEGOTIATION AND DISCOVERY

→ The lifecycle: initialize (pin the version, exchange capabilities), then normal operation, then shutdown.
→ The firm rule: neither side uses a feature the other did not declare. No sampling unless the client advertised it.
→ Dynamic discovery: a server sends notifications/tools/list_changed and the client re-runs tools/list. Add a tool and agents pick it up with no redeploy.
→ So the tool list is a live fact, not a constant baked into the agent. MCP systems feel less brittle than hand-wired ones.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text: 14 / 42

Local and hosted MCP transports

Local stdio runs the server on the host machine. The SIE edge uses Streamable HTTP: one HTTPS endpoint handles requests, with optional SSE for long results.

Text in image
stdio for local, Streamable HTTP for hosted, and we are hosted

WHY MCP, IN DEPTH · TRANSPORTS

STDIO (LOCAL)
The host launches the server as a child process and talks over stdin and stdout. No network, near-zero latency, OS process isolation. But the server must live on the same machine, so it cannot serve a hosted, multi-user capability.

STREAMABLE HTTP (HOSTED)
One HTTPS endpoint, JSON-RPC over POST, with an optional SSE stream for long results. Bearer-token auth (OAuth to obtain the token). It replaced the old two-endpoint HTTP+SSE: single endpoint, no always-open socket, stateless-friendly. The SIE edge runs this.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE

Interface text: 15 / 42

Eight document tools

One MCP connection exposes eight document tools, from OCR-to-Markdown and entity extraction to question answering. The slide pairs each tool with its open model, including Qwen3 for summaries.

Text in image
WHAT YOU CAN ACTUALLY CALL

One connection, eight things you can do with a document

MCP TOOL | WHAT IT DOES | OPEN MODEL
docs_to_markdown | PDF, scan, or page to clean markdown | docling, VL-OCR
extract_entities | pull people, orgs, dates, and amounts | GLiNER
redact_pii | scrub SSNs, emails, and addresses on the cluster | GLiNER PII
describe_image | caption and tag a screenshot or photo | Florence-2, SigLIP
extract_structured | a document into a JSON schema you define | Qwen3 + grammar
summarize_document | a short, grounded summary | Qwen3
answer_questions | answer questions against a document | Qwen3
generate_structured | constrained text or JSON generation | Qwen3 + grammar

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
16 / 42

Clone SIE and bring up the cluster

Clone the SIE repository and run its cluster as one GPU-enabled container; the MCP edge points at that cluster.

Text in image
START HERE · IT'S OPEN SOURCE

Clone SIE and bring up the cluster

Repository screenshot:
superlinked / sie
[illegible]
About
Open-source inference server and production cluster for all the models your agent needs.
[illegible]

github.com/superlinked/sie, Apache-2.0. The cluster is one container: docker run --gpus all -p 8080:8080 ghcr.io/superlinked/sie-server. The MCP edge points at it.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
17 / 42

Start the MCP edge

The setup points the MCP edge at a cluster, generates a connector secret, and starts the edge. The cluster API key stays on the edge; the agent receives the connector bearer.

Text in image
DEMO STEP 1 · START THE EDGE
In a new terminal, point the edge at your cluster and run it

your VPC

# the edge runs in your VPC and holds the cluster credential
export SIE_BASE_URL=https://sie.your-vpc.internal     # your SIE cluster
export SIE_API_KEY=[redacted]                         # cluster API key, stays on the edge

# a connector secret you generate; the agent presents it as its Bearer
export SIE_CONNECTOR_SECRET=$(openssl rand -hex 32)
export SIE_MCP_CONNECTOR_SECRETS="$SIE_CONNECTOR_SECRET:claude-code"  # secret[:user]

# start the MCP edge (FastMCP over HTTP)
sie-mcp serve --host 0.0.0.0 --port 8088

# the agent only ever holds the connector bearer, never the cluster key

Interface text:
Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE
18 / 42

Private document tools with the SIE MCP server

The guide describes an MCP edge that runs document tools on models hosted in a SIE cluster and returns a processed artifact to the agent, while raw documents stay in the cloud.

Text in image
How to serve private document tools to any LLM with the SIE MCP server
DOCUMENT PROCESSING · [illegible]
By Filip Makraduli

Give any AI agent a private document toolbox that runs on your own models, in your own cloud.

This guide shows you how to stand up the SIE MCP edge: a Model Context Protocol (MCP) server that exposes document tools (parse, redact, extract, summarize, OCR, caption, structured output) to any agent, where the heavy work runs on open models you host on your own SIE cluster. Connecting an agent to this server lets it work over your private documents (contracts, NDAs, invoices, scans) without the raw bytes or the personal data ever leaving your cloud or reaching a frontier model API. The agent only ever gets a small, clean artifact back.

SIE is open source and free under Apache 2.0. Stop reading and start cutting per-token costs whenever you like: the engine runs on your own hardware, from a laptop to a Kubernetes cluster.

★ Star SIE on GitHub
Run the 2-minute quickstart →

Unlike a typical MCP server that wraps a local folder or a SaaS API and hands the model raw content to read, the SIE edge is model-backed: each tool runs open models on your own infrastructure and returns a small, processed result. Any MCP client can connect to it: Claude Code, claude.ai, Cursor, or any local-

ON THIS PAGE
Why I wanted this: cost, privacy, adaptability
How SIE MCP differs from a standard MCP server
Use cases
How it works: three tiers
Prerequisites
Run the SIE MCP edge
  Step 1: Point at a SIE cluster
  Step 2: Configure the edge
  Step 3: Start the edge
Connect an agent
  Claude Code
  claude.ai (OAuth)
  Any MCP client
Run it: the document pipeline
The tools
Where LoRA fits
Troubleshooting
Security notes
Copy Markdown
View as Markdown

Interface text:
WHY DID WE OPEN-SOURCE OUR INFERENCE ENGINE? READ THE POST →
Superlinked
MODELS  EXAMPLES  DOCS  BLOG  GITHUB ★ 2.1K  CONTACT US →
← All Posts
WE USE COOKIES FOR ANALYTICS. LEARN MORE
ACCEPT  DECLINE

17:08Demo milestone

Connect Claude

One command connects Claude to the MCP edge; another installs document skills. The edge holds the cluster key, which the agent never sees.

Text in image
DEMO STEP 2 · CONNECT CLAUDE
Connecting it is two commands

# 1. point Claude at the SIE MCP edge running in your VPC
claude mcp add --scope user --transport http \
  superlinked-docs https://edge.your-vpc.internal/mcp \
  --header "Authorization: Bearer $SIE_CONNECTOR_SECRET"

# 2. install the document skills, then restart Claude Code
cp -R claude-code/* ~/.claude/skills/

# the edge holds the cluster key; your agent never sees it

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
terminal
first call
19 / 42

From contracts to a private knowledge graph

The demo plan parses a contract and invoice into linked notes, redacts an NDA's SSN on the cluster, then reveals a graph of companies and people. It uses a standing synthetic vault.

Text in image
DEMO STEP 3 · DROP THE DOCS
Watch a pile of contracts become a private knowledge graph

01
PARSE AND LINK
Drop in a contract and an invoice. SIE returns clean text and the agent writes linked notes, every company a link.

02
REDACT
An NDA has someone's SSN. We scrub it on the cluster first, so the note only ever shows a placeholder.

03
REVEAL
Open the graph view: the documents are now one connected web of companies and people.

A runnable version of this demo, with the standing synthetic vault, ships as an example with the SIE MCP edge. The three core docs slot into it live.

Superlinked
RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
GITHUB.COM/SUPERLINKED/SIE

Interface text:
20 / 42

MCP package setup

The presenter opens the MCP package in Claude Code; the assistant identifies the example directory before the document demo begins.

Text in image
There's no integrations subfolder inside sie_mcp. Let me know which one you want and I'll work there — my best guess is packages/sie_mcp (the MCP package). Want me to go there?

Sautéed for 22s

thats the one

Listed 1 directory

We're in packages/sie_mcp. Here's the layout:
- src/ — the MCP package source
- plugin/ — plugin code
- examples/ — including the obsidian-contract-graph example (with your uncommitted changes)
- docs/, tests/, Dockerfile, pyproject.toml, README.md

What would you like to do here?

Baked for 5s

recap: We're exploring the sie_mcp package at packages/sie_mcp to do some work. Next step is for you to tell me what you'd like to do here. (disable recaps in /config)

can you

Interface text:
Navigate to MCP integrations folder
sie git:(main) × Opus 4.8 (1M context) [ctx: 3%] SIE saved ~106 today
auto mode on (shift+tab to cycle)

18:04Demo milestone

Example document inbox

The example inbox contains synthetic documents, including invoices and an NDA. The presenter asks viewers to imagine the files as different emails.

Text in image
sie / packages / sie_mcp / examples / obsidian-contract-graph / inbox

Name | Last commit message | Last commit date
acme-globex-msa.html | release: v0.6.13 | 4 days ago
globex-invoice.html | release: v0.6.13 | 4 days ago
globex-msa-amendment.html | release: v0.6.13 | 4 days ago
hooli-cloud.html | release: v0.6.13 | 4 days ago
initech-invoice.html | release: v0.6.13 | 4 days ago
initech-license.html | release: v0.6.13 | 4 days ago
massive-dynamic-jda.html | release: v0.6.13 | 4 days ago
omar-haddad-employment.html | release: v0.6.13 | 4 days ago
soylent-po.html | release: v0.6.13 | 4 days ago
stardust-nda.html | release: v0.6.13 | 4 days ago
umbrella-sow.html | release: v0.6.13 | 4 days ago
vandelay-supply.html | release: v0.6.13 | 4 days ago
wayne-series-b.html | release: v0.6.13 | 4 days ago

Interface text:
superlinked / sie
Code  Issues 5  Pull requests 10  Agents  Actions  Wiki  Security and quality 125  Insights  Settings
main  Go to file  Add file
github-actions[bot] release: v0.6.13  [illegible] · 4 days ago  History

18:27Demo milestone

NDA redaction attempt

The assistant finds the NDA, loads the redaction skill and calls the document tool without reading the file into context. Its attempt to write the redacted output reports an error.

Text in image
recap: We're exploring the sie_mcp package at packages/sie_mcp to do some work. Next step is for you to tell me what you'd like to do here. (disable recaps in /config)

can you redact the data from the nda document

Listed 1 directory

I found the NDA document: inbox/stardust-nda.html. I'll redact PII from it using the redact-pii skill.

Skill(redact-pii)
  Successfully loaded skill

I'll redact the NDA without reading it into context. Let me load the MCP tool and base64-encode the HTML file.

Called superlinked-docs, ran 1 shell command

Write(packages/sie_mcp/examples/obsidian-contract-graph/processed/stardust-nda.redacted.md)
  Error writing file

Roosting… (1m 5s · ↓ 2.9k tokens · thinking)
  Tip: Share Claude Code and earn £10 in usage credits · /passes

Interface text:
Navigate to MCP integrations folder
sie git:(main) × Opus 4.8 (1M context) [ctx: 4%] ⚡ SIE saved ~121 today
auto mode on (shift+tab to cycle) · ← for agents

20:08Demo milestone

Read the talk

Turning My Obsidian Vault Into a Local AI Engineer

Filip Makraduli connects an Obsidian vault to private document-processing tools through MCP and Superlinked’s inference engine. The scanned-document demo explains the offloading mechanism; the closing questions expose why redaction also needs control over raw-file access.

From a talk by Filip Makraduli

At a glance

Ideas worth remembering

  • Preprocessing a scan into redacted Markdown changes what the main agent needs to consume: OCR extracts the text, and redaction masks sensitive values before the intended handoff.

  • MCP separates the agent’s tool interface from SIE’s model-serving infrastructure, where worker pools, per-worker batching, autoscaling and model swapping support different workloads.

  • The proposed model router would consider both task requirements and GPU state: a warm model can be preferable to a nominally cheaper model that needs reloading. This remains roadmap work.

  • Model configuration must produce the required artifact. A summarizer that spends its generation on thinking and returns little or no summary is a concrete failure, even if inference runs successfully.

  • Private processing and redacted tool responses do not alone prevent the agent from reading raw files first. File permissions, harness design and evaluation must address that earlier access path.

A well-organized vault still has expensive, sensitive files

An Obsidian graph can organize Markdown files and show their connections. It does less to answer a practical question: what happens when a coding agent needs to work with sensitive documents? Filip Makraduli of Superlinked starts with that problem. Giving Claude Code or Cowork access to a vault can expose files, while processing scans and images through the main model can consume substantial context and tokens.

The proposed workflow preprocesses documents on infrastructure the operator controls, then returns a smaller artifact to the agent. A scan can become extracted text; sensitive entities can become masked labels. The main model receives material prepared for its next task instead of every page and image in its original form. Smaller artifacts also leave more room in context for the work the agent actually needs to do.

Three requirements shape the design:

  • Lower token use. Move document processing, particularly OCR, away from the main agent model.
  • Control over sensitive processing. Run preprocessing in a private cloud or self-hosted environment.
  • Adaptable models. Test open models and task-specific LoRAs rather than committing every operation to one general model. LoRAs provide a way to adapt models to narrower domains.

Storage was the comparatively easy part. Obsidian already held the files and their relationships. Running several open models, comparing them and deploying inference at production scale created the harder problem. Superlinked’s open-source SIE project supplies both the inference system and cluster deployment. The workshop uses a Superlinked-managed cluster; a local Docker setup is another option, with slower processing expected in that setup. Here, “local” therefore describes a workflow that can remain under the operator’s control, rather than a requirement that every model run on the laptop.

0:451:15
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:15 · section reference included

Keep the agent workflow; move document work behind MCP

The intended user experience stays inside Claude Code. When a task needs sensitive or token-heavy processing, the agent calls a tool and receives its result. Consider the talk’s example of a ten-page PDF containing images and other details: an open OCR model processes the document first, and the agent receives the extracted artifact. The work still happens, but a specialized model performs it before the main agent consumes the result.

MCP provides the interface between that familiar agent workflow and a separately operated cluster. Makraduli chose it to separate responsibilities and support additional tools over time. SIE controls the worker pools, GPU choices and model placement behind the interface. A skill can help the agent use the integration, while the server and workers perform the heavy processing.

Where does a tool request go, and where does inference happen? The three-tier layout separates the agent host, the SIE MCP server and the GPU cluster. Requests travel through the MCP server to the workers; results return through the same integration. In the self-hosted design, the MCP service and inference work run in the operator’s private cloud. That placement describes the processing path; the closing discussion will return to whether the agent can also reach raw files through another path.

The integration uses JSON-RPC requests, responses and notifications for initialization and communication. Tools become available through discovery. MCP can also support client capabilities such as sampling and elicitation, but this implementation deliberately avoids those additional exchanges: the SIE MCP service exposes tools and responds to their calls. That is a narrower interaction model chosen for the privacy-oriented setup.

For transport, the talk distinguishes local stdio use from the streaming HTTP approach chosen for the service. Makraduli describes the newer HTTP arrangement as consolidating communication that previously used separate endpoints for the handshake and streaming. The operational purpose is straightforward: expose remotely hosted processing through a tool interface the agent already understands.

The tool path separates agent interaction from GPU processing

Agent host and MCP clientagent — Claude Code, Cowork or another compatible host selects and calls tools.
SIE MCP serverprivate-cloud — Exposes document-processing tools and connects their calls to inference.
SIE GPU worker poolsprivate-cloud — Run the available models and perform the requested processing.
The MCP server connects the host’s tool calls to SIE workers and returns their results. The server and inference cluster can run in the operator’s private cloud; this diagram does not imply that raw-file access elsewhere is blocked.
Read the diagram as text
  • Agent host and MCP client. agent — Claude Code, Cowork or another compatible host selects and calls tools.
  • SIE MCP server. private-cloud — Exposes document-processing tools and connects their calls to inference.
  • SIE GPU worker pools. private-cloud — Run the available models and perform the requested processing.
  • Agent host and MCP client → SIE MCP server: Tool request.
  • SIE MCP server → SIE GPU worker pools: Processing job.
  • SIE GPU worker pools → SIE MCP server: Processing result.
  • SIE MCP server → Agent host and MCP client: Tool response.
7:107:40
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:10 · section reference included

Tools expose specialized work without changing the host

The available tools cover several distinct transformations:

  • Documents to Markdown. OCR extracts a text artifact from document inputs, including scans.
  • Entity extraction. Named entity recognition models identify relevant entities in documents.
  • Captioning and tagging. Models produce descriptions or labels for content.
  • Structured and generative tasks. Other tools support structure generation, summarization and question answering.

Makraduli presents open OCR models as strong enough to make this offloading useful without an inherent quality sacrifice. That is his assessment of the available models, rather than a document-level accuracy measurement from this demo.

The tool layer is extensible: a contributor can add another tool while using the same inference infrastructure underneath it. Setup can use a locally launched cluster, a self-hosted cluster or a managed endpoint with an API key. The workshop proceeds with credentials and an endpoint already configured, so the live exercise focuses on the document transformations rather than provisioning hardware.

14:4115:11
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:41 · section reference included

An inbox NDA becomes a masked document

The demo vault contains an inbox of synthetic files standing in for emails and documents. Examples include invoice-related messages and an NDA containing sensitive fields such as a phone number and Social Security number. The request is ordinary language: “redact the data from the NDA document.” This gives the agent a task to delegate through the configured integration.

What does the agent receive after redaction? Makraduli first shows a previously produced example with masked entities and labels such as email and person, then describes the current run reporting a freshly redacted file, redacted spans and label counts. These are different parts of the result: the artifact carries the usable document, while spans and counts describe the redaction operation. The intended behavior is for the agent to receive this processed version rather than sensitive values from the original.

The run reports 10 redacted spans, counts by entity type, and the processed Markdown output path; it also labels detection best-effort.Open full source frame
The run reports 10 redacted spans, counts by entity type, and the processed Markdown output path; it also labels detection best-effort.
Redacted 10 spans from inbox/stardust-nda.html → processed/stardust-nda.redacted.md

Label counts:
- person: 3
- email: 3
- phone number: 1
- social security number: 1
- date of birth: 1
- home address: 1

Detection is model-based and best-effort — not a certified scrubber, so spot-check before relying on it
18:1018:40
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

18:10 · section reference included

A scanned contract needs extraction before redaction

The next request adds an earlier processing stage: preprocess the scans and redact them. A scanned contract is an image, so its words first need to be extracted through OCR. The stated sequence is to convert the document to Markdown, then redact the extracted content. OCR changes the representation into text the next tool can process; redaction changes which values the resulting artifact reveals.

What survives that two-stage transformation? The before-and-after example moves from the scanned contract image to a Markdown file containing extracted material with sensitive content redacted. That is the useful result for the downstream agent: a text document it can work with, with masking applied before the intended handoff. The example demonstrates the workflow’s form, rather than establishing that every sensitive field across arbitrary scans will be detected.

A status line also attempts to count saved tokens. Makraduli says that counter still needs updating to work properly, so it does not establish a measured saving for this run. The supported cost mechanism is the preprocessing itself: the main agent can consume the resulting text artifact instead of processing the original image-heavy input.

20:4021:10
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

20:40 · section reference included

Worker pools make several specialized models practical

Behind the simple tool call, SIE must serve different models without treating every task as the same GPU workload. A gateway connects work to different worker pools, and batching happens per worker rather than entirely upfront. Makraduli reports better performance from this arrangement. His explanation also refers to a shared queue workers pull from, though it does not fully specify the queue and batching topology; the clear design distinction is that batch formation happens at the workers.

Separate worker pools let hardware follow the workload. A heavier model may need more expensive hardware, while another can run well on an L4 spot instance. Sending both to the expensive option wastes that distinction. Autoscaling can reduce capacity when it is unused, adding another way to control the cost of keeping the service available.

Model hot swapping supports another kind of flexibility. Smaller models for named entity recognition, embeddings or generation can share GPU capacity through switching and swapping. The talk gives the example of five LoRAs fine-tuned for different subareas of work: being able to swap among them makes it practical to compare their behavior. The same infrastructure can support task bundles for document parsing, embeddings, code generation, captions or policy checks.

22:5823:29
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

22:58 · section reference included

Embedding results and narrow adaptations have different evidence

How close did the tested embedding models come to the comparison model, and at what price? Makraduli reports roughly 10× lower price and says the best embedding model per task reached 99.8% of the frontier comparison’s quality on MTEB tasks. These are reported embedding results, not measurements of the OCR, redaction or generation demo. The recording does not supply the full pricing conditions or benchmark protocol needed to reproduce the comparison.

The benchmark slide reports 99.8% of frontier quality, about $10 to embed 1B tokens, and 3–7× faster per embedding; the text gives the MTEB comparison and task wins.Open full source frame
The benchmark slide reports 99.8% of frontier quality, about $10 to embed 1B tokens, and 3–7× faster per embedding; the text gives the MTEB comparison and task wins.
OF FRONTIER QUALITY
99.8%
best SIE model per task: mean nDCG 0.613 vs
the provider frontier 0.615, and SIE wins 3 of 8
MTEB tasks outright (SciFact, CosQA,
SCIDOCS).

TO EMBED 1B TOKENS
~$10
on SIE stella vs $120 to $130 on voyage,
openai, and cohere: 7 to 13× cheaper, and
under even the cheapest lite tier.

The architectural lesson is about end-to-end performance. Queueing, batching and hardware placement affect how long a job takes and what serving it costs, even when the model’s individual inference operation has not changed. SIE works on both infrastructure and per-model optimization, but Makraduli emphasizes that the surrounding system alone can materially improve production behavior under suitable loads.

Task adaptation provides a separate benefit. Colleagues experimented with relatively inexpensive German-language LoRAs, with German legal language offered as a niche use case where performance improved. The operational advantage is the ability to fine-tune, deploy and compare several adaptations quickly. No numerical improvement is supplied for that example.

Deployment extends beyond publishing model-serving code. The project includes Helm charts, Kubernetes infrastructure and Terraform-based cluster deployment. The same MCP service can handle document questions, fact extraction and reading tasks, while the deployment materials make it possible to operate the processing infrastructure independently.

26:5827:28
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

26:58 · section reference included

Future routing would consider both the task and GPU state

The demonstrated system calls tools backed by configured models. A proposed next step would also choose the model underneath each tool. An OCR request could express a preference such as cheap processing, allowing the system to select an appropriate model for that task. Makraduli explicitly places this routing capability on the roadmap rather than presenting it as built-in behavior.

Routing would have two kinds of inputs: the task’s requirements and the cluster’s current state. A model already warm on a GPU can respond sooner than one that must be loaded. A model with a higher nominal cost might therefore be cheaper for a particular request than a supposedly cheaper model that has been evicted and needs reloading. The proposed decision compares the cost of completing the request, including model availability, rather than comparing model prices alone.

Reasoning introduces another task-specific decision. While building a summarization tool, Makraduli encountered a model that spent its available generation on thinking tokens, leaving a very short summary or no summary at all. The failure was visible in the missing deliverable: computation happened, but useful output did not. Model selection and the thinking setting therefore need to fit the operation. Reasoning may help some tasks, while consuming resources without producing the required artifact in others.

Councils of models and model-based judges are also future possibilities, with corresponding evaluation problems. A judge can be biased; an optimization process can learn to exploit its scoring target; a reasoning model can occupy GPU time without finishing useful work. Testing models before routing work to them matters because more inference activity does not by itself imply a better result.

31:3932:09
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

31:39 · section reference included

One tool interface still needs several model runtimes

A shared interface does not make the underlying models interchangeable at runtime. Different model families can implement attention differently and require different execution paths for their forward passes. The catalog therefore distinguishes architectures and output types, while the inference system supports the runtimes those families need.

The catalog also distinguishes encoding from scoring. Encoding models support embedding-based retrieval; scoring models can rerank candidates. Exposing those capabilities through tools opens a path to custom retrieval workflows alongside generation. Makraduli points to examples, quick-start material, credential setup and migration guidance for people moving an existing API-based workflow onto SIE. These materials support trying the infrastructure with a real task rather than treating the document demo as its only application.

38:0138:31
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

38:01 · section reference included

Redacted output does not prevent an earlier raw-file read

The final questions test the privacy premise at the moment before the tool call. An audience member asks whether Claude could read the raw document while deciding what to do. Returning only a redacted version answers what comes back from the processing service. It does not answer what the agent could read beforehand through its existing file access.

Makraduli says his tests appeared to work without leaking data, while acknowledging the need for further evaluation and stronger guardrails at that initial stage. The consequential limitation is that the demonstrated processing path does not establish an enforced restriction against raw-file reads. Hosting OCR and redaction privately controls where those tools run; it does not, by itself, remove another reader’s access to the source document.

Two possible changes emerge from the discussion:

  • Control the harness. A custom harness using an open model could place more of the agent workflow under the operator’s control. The preprocessing benefits can still apply without Claude Code.
  • Separate file access. Another audience member proposes advertising a file’s existence to the worker without connecting the agent to the same filesystem. SIE would retrieve the file for processing. This separates knowing which file needs work from being able to read its contents; it is a proposed arrangement in the discussion, rather than a demonstrated restriction in the live setup.

The remaining questions clarify ownership and ingestion. The demo uses hardware hosted by Superlinked, but users can configure and deploy their own cluster through the repository’s Terraform infrastructure. Asked whether the MCP integration has a file watcher, Makraduli answers that it sends the file to the main worker, where processing occurs; he does not establish a watcher mechanism. Managed compute is offered to make experimentation quicker, while self-hosting remains an option.

For sensitive use, the useful next test follows directly from the audience’s objection: can the agent reach the original document before preprocessing finishes? The scanned-contract workflow supplies a smaller, masked artifact for downstream work. Making that artifact the agent’s only available document requires the file-access design to support the same intention as the tools.

42:1242:29
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

42:12 · section reference included

Resources

Read the complete timestamped transcript

20 slide groups · 8 demo milestones. Extracted from the recording; expand builds to follow changes. Timestamps are approximate. 36 additional groups were omitted from this pass.

  1. 0:15

    Hello, hello. Um, I guess we're starting. I know some of you are still joining in, but I'll go on and, uh, you can jump in at any time. Uh, so you might have seen the title of this talk. Um, and what I have on the slide here is slightly different, but I promise it's the same direction and the same general idea. So it all started from me wanting to build a use case that's

  2. Private AI on my own data

    Makraduli wanted an agent to work across his Obsidian files while keeping the data private and self-hosted, with a choice of open models.

    Text in image
    SUPERLINKED · WORKSHOP
    
    I wanted private AI on my own data
    
    → It started in Obsidian: everything I keep, as local markdown I own.
    → I wanted an agent over it, but the data was private and the good models were rented.
    → The goal: keep it private and self-hosted, on any open model, even ones I fine-tune.
    
    GITHUB ★ 2.1K
    CONTACT US →
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    1 / 42
  3. 0:45

    around privacy and token costs, basically. So, um, I started with Obsidian. I had some markdown files there. Um, and as you know, it's like you have this nice, um, graphs and it's all good. Looks very nice. However, um, I had certain issues beyond just organizing the files. So a lot of people do these knowledge graphs

  4. Private AI on my own data

    Makraduli wanted an agent to work across his Obsidian files while keeping the data private and self-hosted, with a choice of open models.

    Text in image
    SUPERLINKED · WORKSHOP
    
    I wanted private AI on my own data
    
    → It started in Obsidian: everything I keep, as local markdown I own.
    → I wanted an agent over it, but the data was private and the good models were rented.
    → The goal: keep it private and self-hosted, on any open model, even ones I fine-tune.
    
    GITHUB ★ 2.1K
    CONTACT US →
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    1 / 42
  5. 1:15

    and so on, and like memory for agents, and that's quite good. However, I needed to approach this differently because there was a concern around privacy. So when using agents, when using Claude Code, when using Cowork, uh, you can expose your files and for some institutions, for some people, this was, um, a requirement that, um, needed to be met. So

  6. 1:45

    the goal was to keep things private and self-hosted, but also make them quite usable and friendly so that people could actually do these things. And, um, there was kind of this openness to fine-tune, to be very adaptable, to use open source models and, um, I found that the solution was, um, in Superlinked, which is a model inference,

  7. Everything I keep lives in Obsidian

    Makraduli shows a synthetic contract vault as an Obsidian graph. He wants an agent to work across his linked Markdown files while keeping private data in his own cloud.

    Text in image
    WHERE IT STARTED
    
    Everything I keep lives in Obsidian, as local markdown
    
    Obsidian is just linked markdown files I own. I wanted an agent to work across them, but the moment a private file goes to a frontier model, it has left my cloud. I wanted the AI without handing over the data. (Shown: the synthetic contract vault we build live in the demo.)
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    2 / 42
    
    Interface text:
    Graph view
    Filters
    Groups
    Display
    Forces
    [illegible graph labels]
  8. 2:15

    um, engine that's open source. So it has both a cluster and a model inference solution. And I will be talking about that today and how I managed to kind of merge these concepts together and, um, create something that leans on these three things. So the first main idea was I wanted to make Claude Code a bit cheaper and save on tokens. So we know

  9. Three requirements

    The proposed SIE MCP edge returns small artifacts to reduce repeat document costs, keeps sensitive inputs in the user's cloud, and supports model choice and task-specific fine-tuning.

    Text in image
    WHAT IT WOULD TAKE
    
    To build it right, I needed three things
    
    01
    CHEAPER: SMALL ARTIFACTS
    Return a small artifact to the agent instead of re-billing the whole document on every turn.
    
    02
    PRIVATE: NOTHING LEAVES
    The raw documents, the PII, and the cluster keys all stay inside my own cloud.
    
    03
    ADAPTABLE: YOUR MODELS
    Choose the models, route each job to the right one, and fine-tune with a LoRA when the domain needs it.
    
    The rest of this workshop is how one small service, the SIE MCP edge, delivers all three.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    3 / 42
  10. 2:44

    how with the release of Fable, there initially there was this, um, API-only pricing and that kind of, uh, maybe disappointed a few people or the token economics got a bit more attention now. So that was one thing. Especially for document processing, sensitive document processing, where you need to do OCR, there are a lot of scans, images and stuff like this. The token cost can ramp up, so I wanted to find a way to kind

  11. 3:14

    of do this. But also having smaller artifacts means that you get better context, so you kind of limit context loss in a way, and you don't like fill out, um, the context with data that can be processed in some way else. Um, and I wanted to make this private. So yes, for certain situations it's fine to paste everything into Claude Code or have that API working there,

  12. Three requirements

    The proposed SIE MCP edge returns small artifacts to reduce repeat document costs, keeps sensitive inputs in the user's cloud, and supports model choice and task-specific fine-tuning.

    Text in image
    WHAT IT WOULD TAKE
    
    To build it right, I needed three things
    
    01
    CHEAPER: SMALL ARTIFACTS
    Return a small artifact to the agent instead of re-billing the whole document on every turn.
    
    02
    PRIVATE: NOTHING LEAVES
    The raw documents, the PII, and the cluster keys all stay inside my own cloud.
    
    03
    ADAPTABLE: YOUR MODELS
    Choose the models, route each job to the right one, and fine-tune with a LoRA when the domain needs it.
    
    The rest of this workshop is how one small service, the SIE MCP edge, delivers all three.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    3 / 42
  13. 3:45

    but what if you could kind of self-host and have your own VPC or your own cloud to pre-process your sensitive documents and then return something back? So this was another target of mine when building this. And also I wanted adaptability. So it wasn't just, um, privacy and lowering token costs, but also having the chance to test out multiple models, maybe host LoRAs that are very task-specific

  14. 4:15

    because with these very sensitive use cases, usually there is some sort of fine-tuning or adaptation towards that niche use case. So I had to do that as well. And the setup, um, involves Superlinked, um, and SIE, the repo. So you can-- For the purpose of today, you can go to, um, the repo which is fully open source.

  15. Three requirements

    The proposed SIE MCP edge returns small artifacts to reduce repeat document costs, keeps sensitive inputs in the user's cloud, and supports model choice and task-specific fine-tuning.

    Text in image
    WHAT IT WOULD TAKE
    
    To build it right, I needed three things
    
    01
    CHEAPER: SMALL ARTIFACTS
    Return a small artifact to the agent instead of re-billing the whole document on every turn.
    
    02
    PRIVATE: NOTHING LEAVES
    The raw documents, the PII, and the cluster keys all stay inside my own cloud.
    
    03
    ADAPTABLE: YOUR MODELS
    Choose the models, route each job to the right one, and fine-tune with a LoRA when the domain needs it.
    
    The rest of this workshop is how one small service, the SIE MCP edge, delivers all three.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    3 / 42
  16. Private documents and the easy way

    The slide warns that uploading a 40-page PDF to a closed model API sends the raw file and its PII away while re-billing ~80k tokens every turn.

    Text in image
    Your agent needs to read private documents. The easy way leaks them.
    
    Upload a 40-page PDF and you re-bill ~80k tokens every turn and hand the raw file, plus its PII, to a closed model API. The work you wanted to keep private is the work you just sent away.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    4 / 42
  17. 4:45

    So you can find it on GitHub. It's Superlinked SIE. Um, you can... Yeah. So this is it. This is the logo. And I'll be talking about, um, an integration that's, um... Sorry, not here. So an integra-- an MCP integration, which is basically a package that we did, which is this one here. So you can also have a look at this sub-directory. So this is where most of the talk

  18. SIE MCP package directory and README

    Makraduli opens the SIE MCP package. Its README describes offloading private document work to open models on your GPUs and returning a small artifact to Claude.

    Text in image
    sie / packages / sie_mcp /
    
    Name | Last commit message | Last commit date
    ..
    docs | release: v0.6.13 | 4 days ago
    examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
    plugin | release: v0.6.13 | 4 days ago
    src/sie_mcp | release: v0.6.13 | 4 days ago
    tests | release: v0.6.13 | 4 days ago
    Dockerfile | release: v0.6.10 | last week
    README.md | release: v0.6.13 | 4 days ago
    pyproject.toml | release: v0.6.10 | last week
    
    README.md
    
    Interface text:
    superlinked / sie
    Code
    Issues 5
    Pull requests 10
    Agents
    Actions
    Wiki
    Security and quality 125
    Insights
    Settings
    main
    Go to file
    Add file
    github-actions[bot] release: v0.6.13
    9220205 · 4 days ago
    History

    5:03Demo milestone

    Show 2 builds
    1. 5:03

      GitHub directory listing for the SIE MCP package, including documentation, examples, source, and tests.

      Text in image
      sie / packages / sie_mcp /
      
      Name | Last commit message | Last commit date
      ..
      docs | release: v0.6.13 | 4 days ago
      examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
      plugin | release: v0.6.13 | 4 days ago
      src/sie_mcp | release: v0.6.13 | 4 days ago
      tests | release: v0.6.13 | 4 days ago
      Dockerfile | release: v0.6.10 | last week
      README.md | release: v0.6.13 | 4 days ago
      pyproject.toml | release: v0.6.10 | last week
      
      README.md
      
      Interface text:
      superlinked / sie
      Code
      Issues 5
      Pull requests 10
      Agents
      Actions
      Wiki
      Security and quality 125
      Insights
      Settings
      main
      Go to file
      Add file
      github-actions[bot] release: v0.6.13
      9220205 · 4 days ago
      History
    2. 5:10

      GitHub package directory with the SIE MCP edge README introduction.

      Text in image
      sie-mcp: the SIE MCP edge
      
      Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.
      
      sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.
      
      Claude
      
      Interface text:
      superlinked / sie
      Code
      Issues 5
      Pull requests 10
      Agents
      Actions
      Wiki
      Security and quality 125
      Insights
      Settings
      main
      sie / packages / sie_mcp /
      Go to file
      Add file
      github-actions[bot] release: v0.6.13
      9220205 · 4 days ago
      History
      Name | Last commit message | Last commit date
      ..
      docs | release: v0.6.13 | 4 days ago
      examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
      plugin | release: v0.6.13 | 4 days ago
      src/sie_mcp | release: v0.6.13 | 4 days ago
      tests | release: v0.6.13 | 4 days ago
      Dockerfile | release: v0.6.10 | last week
      README.md | release: v0.6.13 | 4 days ago
      pyproject.toml | release: v0.6.10 | last week
      README.md
  19. 5:15

    will be about, but I'll also mention why actually the inference was the bottleneck when building something like this. So it was easy to figure out how to store the data, maybe in Obsidian and so on, and have these connections between the data. Um, that was the easy part. I could also use an API. However, if I wanted to do open source, if I wanted to do open source inference at scale and testing out multiple models, being

  20. MCP tools and credentials model

    The MCP edge exposes document tools and separates the cluster API key from the connector secret. Its redaction tool returns redacted text and counts without a map back to the originals.

    Text in image
    What It Exposes
    
    The MCP server exposes these tools:
    • docs_to_markdown: convert PDF, scans, images of pages, Office files, or HTML to markdown.
    • summarize_document: summarize a document or text input through the cluster.
    • extract_entities: extract zero-shot entity labels such as person, organization, date, or amount.
    • redact_pii: return redacted text and redaction counts.
    • answer_questions: answer questions grounded in supplied document text.
    • describe_image: caption and classify an image.
    • extract_structured: extract schema-valid JSON from document text.
    • generate_structured: generate constrained JSON, regex, or grammar output.
    
    The generated Claude Code skill pack includes:
    • superlinked-docs: general document offload skill.
    • parse-document: calls docs_to_markdown.
    • summarize-document: calls summarize_document.
    • extract-entities: calls extract_entities.
    • redact-pii: calls redact_pii.
    
    The redaction MCP tool intentionally does not return a placeholder-to-original map. That keeps original PII from being handed back to the calling model. Use the older local sie_tools redaction flow from PR #1336 if a de-redaction map is required.
    
    Credentials Model
    
    There are two different credentials:
    • Server operator credential: SIE_API_KEY, used by the MCP edge to call the SIE cluster gateway. Only the edge process should have this.
    • Connector credential: SIE_MCP_CONNECTOR_SECRETS, used by users or agent surfaces to authenticate to /mcp. Give users this connector secret, not the cluster API key.
    
    The edge also needs SIE_BASE_URL, the gateway URL for the SIE cluster. For an in-cluster Helm deployment this can be left unset and the chart points at the gateway service.
    
    Quick Install For An Existing Hosted Edge
    
    Interface text: main · sie / packages / sie_mcp / · Top

    5:26Demo milestone

  21. 5:44

    able to deploy this in production, things got a bit difficult. And that's why the infrastructure advantage that SIE offers, the fact that you're able to kind of deploy both a cluster and the models themselves was a very big advantage in my case. Um, here you can see this, um, Obsidian example, so I'll work with kind of some of these things. Uh, but you can also

  22. SIE MCP edge architecture

    Claude connects over MCP to an edge in the user’s VPC, which uses sie_sdk to reach the SIE gateway. The README says raw bytes and PII reach the edge, never the model API; Claude receives a small artifact.

    Text in image
    sie-mcp: the SIE MCP edge
    
    Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.
    
    sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.
    
    Claude
    Code / desktop / claude.ai / Cowork
    
    MCP over streamable-HTTP
    Authorization: Bearer <connector-secret>
    
    sie-mcp edge (this package, in your VPC)
    holds SIE_API_KEY
    
    Raw bytes and PII reach your edge, never the model API.
    
    sie_sdk
    
    SIE gateway
    
    Interface text:
    main
    sie / packages / sie_mcp /
    Top
    https://github.com/[illegible]

    5:52Demo milestone

  23. SIE MCP package directory and README

    Makraduli opens the SIE MCP package. Its README describes offloading private document work to open models on your GPUs and returning a small artifact to Claude.

    Text in image
    sie-mcp: the SIE MCP edge
    
    Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.
    
    sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.
    
    Claude
    
    Interface text:
    superlinked / sie
    Code
    Issues 5
    Pull requests 10
    Agents
    Actions
    Wiki
    Security and quality 125
    Insights
    Settings
    main
    sie / packages / sie_mcp /
    Go to file
    Add file
    github-actions[bot] release: v0.6.13
    9220205 · 4 days ago
    History
    Name | Last commit message | Last commit date
    ..
    docs | release: v0.6.13 | 4 days ago
    examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
    plugin | release: v0.6.13 | 4 days ago
    src/sie_mcp | release: v0.6.13 | 4 days ago
    tests | release: v0.6.13 | 4 days ago
    Dockerfile | release: v0.6.10 | last week
    README.md | release: v0.6.13 | 4 days ago
    pyproject.toml | release: v0.6.10 | last week
    README.md

    6:04Demo milestone

  24. Private contract knowledge graph example

    The example uses the SIE MCP edge to parse legal documents, extract entities and redact PII. Claude Code writes to an Obsidian vault, while the agent sees only small markdown.

    Text in image
    Example: a private contract knowledge graph (SIE MCP edge + Obsidian)
    
    Turn a folder of messy legal documents into a private, linked Obsidian knowledge graph. Parsing, entity extraction, and PII redaction all run on open models on your own cluster through the SIE MCP edge, so the raw documents and the personal data never reach the model API. The agent only ever sees small markdown.
    
    An Obsidian vault is just a folder of markdown. Claude Code’s file tools write into it; the SIE MCP edge does the document processing. Nothing in this example modifies the sie_mcp package.
    
    What is in here
    
    Interface text:
    superlinked / sie
    Code · Issues 5 · Pull requests 10 · Agents · Actions · Wiki · Security and quality 125 · Insights · Settings
    main / sie / packages / sie_mcp / examples / obsidian-contract-graph
    Go to file · Add file
     github-actions[bot] release: v0.6.13 · 4 days ago · History
    Name · Last commit message · Last commit date
    ..
    .obsidian · release: v0.6.13 · 4 days ago
    inbox · release: v0.6.13 · 4 days ago
    processed-fallback · release: v0.6.13 · 4 days ago
    vault · release: v0.6.13 · 4 days ago
    .gitignore · release: v0.6.13 · 4 days ago
    README.md · release: v0.6.13 · 4 days ago
    token-savings.html · release: v0.6.13 · 4 days ago
    README.md

    6:09Demo milestone

  25. 6:14

    try this yourself. Um, however, I will be using a managed cluster. We cannot, um, I cannot give that to you right now live. However, you can go to our website, which is this one, and here you have this Apply for In-Inference Grant. So you can go there, and you'll receive your, um, API key that you can try, and you can do things quicker. If not, you can do things locally 'cause there is a Docker

  26. 6:44

    container and all that. Uh, it will just take a bit slower to do these things. But I'd prefer if you kind of listen to me now and then try things after, but also in parallel if you want. And we also have this very cool, um, kind of QR codes memorabilia stuff where you can get an even better cluster as a thing, and you can find them here, uh, after the talk.

  27. 7:10

    So, um, as I said, the idea was to have this privacy element and have a way to offload. So basically, I didn't want to disrupt my normal usage day-to-day. Um, so I'm just working in Claude Code, and then if there's a specific task that needs to be done on my virtual private clouds that needs to be processed, that's sensitive, that costs a lot of tokens, I can just offload it and continue my work.

  28. Let your own models do the heavy lifting first

    A service in your cloud uses open models on your GPUs to extract facts and scrub private data. Claude receives compact text, aiming for a smaller token bill and more room in the context window.

    Text in image
    THE BIG IDEA
    
    Let your own models do the heavy lifting first
    
    01
    SEND IT TO YOUR EDGE
    The document goes to a small service in your own cloud, not to the model API.
    
    02
    YOUR MODELS DO THE WORK
    Open models on your GPUs read it, pull out the facts, and scrub the private bits.
    
    03
    AGENT GETS THE SHORT VERSION
    Claude only ever sees clean, compact text, already cleared of personal data.
    
    You get three things at once: a smaller token bill, more room in the context window, and data that never leaves your cloud.
    
    Interface text:
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
  29. Let your own models do the heavy lifting first

    A service in your cloud uses open models on your GPUs to extract facts and scrub private data. Claude receives compact text, aiming for a smaller token bill and more room in the context window.

    Text in image
    THE BIG IDEA
    
    Let your own models do the heavy lifting first
    
    01
    SEND IT TO YOUR EDGE
    The document goes to a small service in your own cloud, not to the model API.
    
    02
    YOUR MODELS DO THE WORK
    Open models on your GPUs read it, pull out the facts, and scrub the private bits.
    
    03
    AGENT GETS THE SHORT VERSION
    Claude only ever sees clean, compact text, already cleared of personal data.
    
    You get three things at once: a smaller token bill, more room in the context window, and data that never leaves your cloud.
    
    Interface text:
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
  30. 7:40

    So the natural direction was to build some sort of, um, skill or plugin, but this was even elevated more by building a whole MCP server that's, that gets called, um, in Claude Code. And, uh, there's that element of like using skills, but also having actually a dedicated edge that, uh, can actually do the heavy lifting. And you can also benefit from

  31. 8:10

    Superlinked Inference, which I will talk about later on, kind of how we've done this and what are the advantages of using, um, Superlinked Inference engine. So it saves tokens because, for example, um, a number would be to have like maybe ten pages of a PDF that has images, different details in there. So if you pre-process that with good open source OCR models and then return to your main, uh,

  32. Why this saves so many tokens

    The slide reports 82.9% fewer tokens on Opus 4.8 and 86.5% on Sonnet 4.6 when comparing document text plus page images with edge-produced markdown.

    Text in image
    WHERE THE SAVING COMES FROM
    Why this saves so many tokens
    
    UPLOAD THE WHOLE DOC
    100%
    Claude bills the text of every page and an image of every page, plus all the formatting. That is the full token cost.
    THE WHOLE THING
    
    OFFLOAD IT FIRST
    ~15%
    Your edge sends clean markdown instead. About 85% fewer tokens, measured: 82.9% on Opus 4.8 and 86.5% on Sonnet 4.6 (text plus page images vs the markdown).
    ORANGE = WHAT YOU SEND, GREY = SAVED (~85%)
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    6 / 42
  33. Why this saves so many tokens

    The slide reports 82.9% fewer tokens on Opus 4.8 and 86.5% on Sonnet 4.6 when comparing document text plus page images with edge-produced markdown.

    Text in image
    WHERE THE SAVING COMES FROM
    Why this saves so many tokens
    
    UPLOAD THE WHOLE DOC
    100%
    Claude bills the text of every page and an image of every page, plus all the formatting. That is the full token cost.
    THE WHOLE THING
    
    OFFLOAD IT FIRST
    ~15%
    Your edge sends clean markdown instead. About 85% fewer tokens, measured: 82.9% on Opus 4.8 and 86.5% on Sonnet 4.6 (text plus page images vs the markdown).
    ORANGE = WHAT YOU SEND, GREY = SAVED (~85%)
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    6 / 42
  34. 8:40

    agent, uh, harness or Claude Code or whatever you're using, you get the context, but also, uh, benefit on the lower token spend and better context and so on. So that's the general idea, especially for OCR, this is apparent. However, there are multiple, um, kind of token-saving advantages even beyond OCR. So why MCP and not

  35. Why MCP, not a model API or a one-off plugin

    One MCP server can provide tools to multiple clients. The agent requests a capability such as redaction; the server selects the model and pipeline while keeping the cluster key and raw data on the server side.

    Text in image
    WHY MCP
    Why MCP, not a model API or a one-off plugin
    
    → MCP is the open standard for an agent to call outside tools. Build the server once, and every MCP client (Claude Code, desktop, claude.ai, Cursor) gets the tools.
    → It exposes capabilities, not models: the agent asks to "redact this", and the server decides which model and pipeline does it.
    → The work runs on the server you control, so the cluster key and the raw data stay on your side, never in the agent.
    → One connection, every surface. No bespoke integration per client.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    7 / 42
  36. 9:10

    just an API or a plugin? Um, because we have a dedicated cluster, it was much better to kind of separate the responsibilities and, uh, have this as like the backbone to then build more, um, details and more, um, features further on, for which I will also talk about later. And everything runs on a server you can control, so through SIE you can pick your, uh, worker pools, you can pick your,

  37. Why MCP, not a model API or a one-off plugin

    One MCP server can provide tools to multiple clients. The agent requests a capability such as redaction; the server selects the model and pipeline while keeping the cluster key and raw data on the server side.

    Text in image
    WHY MCP
    Why MCP, not a model API or a one-off plugin
    
    → MCP is the open standard for an agent to call outside tools. Build the server once, and every MCP client (Claude Code, desktop, claude.ai, Cursor) gets the tools.
    → It exposes capabilities, not models: the agent asks to "redact this", and the server decides which model and pipeline does it.
    → The work runs on the server you control, so the cluster key and the raw data stay on your side, never in the agent.
    → One connection, every surface. No bespoke integration per client.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    7 / 42
  38. 9:39

    um, GPUs basically, and understand which models are pinned where. And that flexibility from a cloud perspective was an advantage and, um, I wanted to keep it that way and that's why I went with MCP rather than just a skill. Um, and it exposes the relevant tools. So this is roughly how it would work. Um, if it's just a plugin, it's also on your laptop or on device. In this way, you can kind of

  39. A plugin runs in the agent; the MCP edge runs in your cloud

    The diagram moves document processing from the agent host to an MCP edge in your VPC. The edge holds the cluster key and raw data; only a small artifact returns to the agent.

    Text in image
    WHY MCP, NOT JUST A PLUGIN
    
    A plugin runs in the agent; the MCP edge runs in your cloud
    
    JUST A PLUGIN — runs where the agent runs
    AGENT HOST · LAPTOP OR MODEL CLOUD
    | cluster API key  EXPOSED
    | raw document + PII  EXPOSED
    | parse · extract · redact
    
    The key and the raw data sit where the model runs, and it only works on that one host.
    
    THE MCP EDGE — runs where your models and secrets are
    AGENT
    CONNECTOR SECRET ONLY
    MCP →
    YOUR VPC
    sie-mcp edge
    | cluster key
    | raw bytes + PII
    | tools on your GPUs
    
    Only a small artifact returns. The key, the bytes, and the PII never leave your cloud, and one edge serves every MCP agent.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text: 8 / 42
  40. 10:09

    offload the same experience, but bring it to the cloud, which is your own cloud, and you can control things there. So it's a much cleaner setup. Um, also a lot of the examples here are with PII, so personal identifiable information, and there is a tool that gets called for like redacting specific details around documents, which is one of the central use cases of this privacy aspect. Um, and

  41. A plugin runs in the agent; the MCP edge runs in your cloud

    The diagram moves document processing from the agent host to an MCP edge in your VPC. The edge holds the cluster key and raw data; only a small artifact returns to the agent.

    Text in image
    WHY MCP, NOT JUST A PLUGIN
    
    A plugin runs in the agent; the MCP edge runs in your cloud
    
    JUST A PLUGIN — runs where the agent runs
    AGENT HOST · LAPTOP OR MODEL CLOUD
    | cluster API key  EXPOSED
    | raw document + PII  EXPOSED
    | parse · extract · redact
    
    The key and the raw data sit where the model runs, and it only works on that one host.
    
    THE MCP EDGE — runs where your models and secrets are
    AGENT
    CONNECTOR SECRET ONLY
    MCP →
    YOUR VPC
    sie-mcp edge
    | cluster key
    | raw bytes + PII
    | tools on your GPUs
    
    Only a small artifact returns. The key, the bytes, and the PII never leave your cloud, and one edge serves every MCP agent.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text: 8 / 42
  42. Three tiers: the agent, the edge, and your cluster

    An MCP client connects to sie-mcp in the VPC, which holds the cluster key and routes work to SIE’s queue and GPU workers. The diagram says raw bytes reach the edge and only a small artifact returns to the agent.

    Text in image
    HOW IT'S WIRED
    
    Three tiers: the agent, the edge, and your cluster
    
    TIER 1 · THE AGENT
    MCP client
    Claude Code, claude.ai, Cursor, Cowork. Connects once over MCP.
    CONNECTOR SECRET  NO CLUSTER KEY
    
    TIER 2 · THE EDGE
    sie-mcp
    In your VPC. Holds the cluster key. Stateless: auth, decode, route, redact, assemble.
    THE TRUST BOUNDARY  HOLDS SIE_API_KEY
    
    TIER 3 · THE CLUSTER
    SIE
    STATELESS GATEWAY
    POOL WORK QUEUE (NATS)
    GPU WORKERS, SCALE FROM ZERO
    DOCLING  GLINER  QWEN
    
    The cluster key lives only on the edge. The raw bytes reach the edge over MCP, never an external model API; only the small artifact crosses back to the agent.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text: 9 / 42
  43. 10:40

    the MCP setup, it has three tiers. Um, so there is-- You can see in the middle the SIE MCP. There is the MCP client, um, that's, um, kind of client and host through Cowork or, um, Claude Code or whatever you use, and that communicates with the SIE MCP server. And then you have actually SIE, the cluster that has the, um, GPUs and the worker pools that do

  44. 11:10

    the work by communicating to the, um, MCP server, and you have different models that are available. And we also have a good queuing mechanism for this, uh, GPUs, um, and I will go more into that a bit later. And the idea with M-MCP, as you know in general, is to have like one interface of communicating, especially if we're building more and more tools with this direction of model routing. Because the demo and

  45. MCP as a standard interface

    MCP gives apps and tools a shared interface. In the slide’s example, 5 apps and 10 tools need 50 bespoke connectors, versus 15 connections through MCP.

    Text in image
    WHY MCP, IN DEPTH · THE STANDARD INTERFACE
    
    MCP is the interface in the middle: M times N becomes M plus N
    
    WITHOUT A STANDARD
    M × N
    Every app needs a bespoke integration to every tool. 5 apps times 10 tools is 50 hand-wired connectors, each one breaking when either side changes.
    
    WITH MCP
    M + N
    Each app speaks MCP once, each tool is a server once. 5 + 10 is 15, and any app reaches any tool. The same move as USB, ODBC, and LSP: agree on one interface in the middle.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    10 / 42
  46. 11:40

    the version that we have now is around tool calling. However, we're building stuff around model routing and understanding which models to pick for different tasks based on, um, evals and based on costs. And all of these models would be open source and on your GPU. So, um, there is this important direction as well. Um, so it's a forward-thinking approach. Um, and there is the host, the client, and the server. Um, you can do

  47. Host, client, and server roles

    The host owns the conversation and uses one client per server. A server exposes capabilities; SIE’s edge plays that role whether it runs locally or remotely.

    Text in image
    WHY MCP, IN DEPTH · THE THREE ROLES
    
    Host, client, server, and server is a role, not a place
    
    01
    HOST
    The AI app the user talks to (Claude Desktop, Claude Code, Cursor). It owns the conversation, the model, and the decision of what the model may reach.
    
    02
    CLIENT
    A connector inside the host, one per server, holding a single stateful connection. Three servers means three clients, each its own trust boundary.
    
    03
    SERVER
    A program that exposes capabilities. The SIE edge is a server. It can be a laptop subprocess or a hosted service: server is a role, not a place.
    
    The SIE edge only ever sees the client half: we are a server, we respond. Local vs remote is a transport choice, not a question of who is the server.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    11 / 42
  48. 12:10

    this like with any- Mm, mm, setup that you want, like whether it's Claude Desktop, Claude Code, and so on. And the communication is kind of done through JSON-RPC, so there are three, like, response, request, and a notification just to kind of, uh, initialize this and have this handshake, uh, protocol done so that you can authenticate the MCP Edge and so on. And, um,

  49. JSON-RPC initialization handshake

    The client proposes a protocol version and capabilities; the server responds with its version and capabilities. A final notification confirms the session is open.

    Text in image
    WHY MCP, IN DEPTH · DATA AND TRANSPORT
    
    The data layer is JSON-RPC 2.0; the handshake pins the version and the capabilities
    
    the initialize handshake
    
    // 1. client -> server: initialize (propose a version + capabilities)
    { "jsonrpc": "2.0", "id": 1, "method": "initialize",
      "params": { "protocolVersion": "2025-06-18",
                  "capabilities": { "sampling": {} },
                  "clientInfo": { "name": "claude-ai" } } }
    
    // 2. server -> client: the version + capabilities it will actually use
    { "jsonrpc": "2.0", "id": 1,
      "result": { "protocolVersion": "2025-06-18",
                  "capabilities": { "tools": { "listChanged": true } },
                  "serverInfo": { "name": "sie-edge" } } }
    
    // 3. client -> server: confirm the session is open (notification, no id)
    { "jsonrpc": "2.0", "method": "notifications/initialized" }
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    12 / 42
  50. Tools, resources, and prompts

    MCP servers can expose callable tools, read-only resources, and reusable prompts. The SIE edge uses tools only: it responds to requests without calling back to the host or user.

    Text in image
    WHY MCP, IN DEPTH · THE PRIMITIVES
    
    A server exposes tools, resources, and prompts
    
    01
    TOOLS
    Functions the model calls to do something. Discovered with tools/list, run with tools/call. All eight SIE capabilities are tools.
    
    02
    RESOURCES
    Read-only context the app pulls in: a file, a record, a page. Nouns, not verbs. The edge does not lean on these.
    
    03
    PROMPTS
    Reusable templates the user invokes, often as slash commands: a known-good workflow the server packages.
    
    The client can also expose Sampling (the server asks the host's model to generate), Elicitation (the server asks the user), and Roots (filesystem bounds). The SIE edge uses none of them: it is Tools-only, it never calls back to the host or the user, and it never touches your files. It only responds.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    13 / 42
  51. 12:40

    an important detail is that the server exposes, um, different stuff. So in the MCP standard, that has changed a bit since its inception. Um, but the main thing is that it exposes tools that then, um, Claude Code would use. However, in general, there is, in kind of the MCP universe, there is a situation where, um, the client can also expose stuff like

  52. 13:10

    sampling or elicitation, which kind of make this a two-way communication, so not like a standard client-server setup. However, in our case, just because this was more of a privacy setup, we do not do this. So, um, basically the SIE MCP Edge, um, only exposes the tools, and they can be used, the ones that kind of were initialized in the handshake, and that's it. Um, so

  53. 13:40

    it only kind of does these responses. It wouldn't, um, do these more complex tasks, uh, in our case. And this is the idea, that the tools are discovered and you just go from there. Basically, you, uh, kind of have the tools which give you different, um, abilities and, um, you can run, run that. Another detail is that, um, you can do this also locally. So in the

  54. Capability negotiation and live discovery

    MCP peers exchange capabilities at initialization. When a server signals a tool-list change, the client refreshes the list, letting agents pick up new tools without redeployment.

    Text in image
    Capabilities are negotiated; tools are discovered live
    
    WHY MCP, IN DEPTH · NEGOTIATION AND DISCOVERY
    
    → The lifecycle: initialize (pin the version, exchange capabilities), then normal operation, then shutdown.
    → The firm rule: neither side uses a feature the other did not declare. No sampling unless the client advertised it.
    → Dynamic discovery: a server sends notifications/tools/list_changed and the client re-runs tools/list. Add a tool and agents pick it up with no redeploy.
    → So the tool list is a live fact, not a constant baked into the agent. MCP systems feel less brittle than hand-wired ones.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text: 14 / 42
  55. Local and hosted MCP transports

    Local stdio runs the server on the host machine. The SIE edge uses Streamable HTTP: one HTTPS endpoint handles requests, with optional SSE for long results.

    Text in image
    stdio for local, Streamable HTTP for hosted, and we are hosted
    
    WHY MCP, IN DEPTH · TRANSPORTS
    
    STDIO (LOCAL)
    The host launches the server as a child process and talks over stdin and stdout. No network, near-zero latency, OS process isolation. But the server must live on the same machine, so it cannot serve a hosted, multi-user capability.
    
    STREAMABLE HTTP (HOSTED)
    One HTTPS endpoint, JSON-RPC over POST, with an optional SSE stream for long results. Bearer-token auth (OAuth to obtain the token). It replaced the old two-endpoint HTTP+SSE: single endpoint, no always-open socket, stateless-friendly. The SIE edge runs this.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS  GITHUB.COM/SUPERLINKED/SIE
    
    Interface text: 15 / 42
  56. 14:11

    MCP universe, again, the stdio is like for local development. However, we wanted to use the streaming HTTP responses. This was done in the past by two endpoints, um, that did, uh, the streaming and one did the HTTP handshake, but now there is a standard that kind of does this all at once, so that makes things smoother. And these are the tools that we have, so I'll spend a bit more time on this

  57. Eight document tools

    One MCP connection exposes eight document tools, from OCR-to-Markdown and entity extraction to question answering. The slide pairs each tool with its open model, including Qwen3 for summaries.

    Text in image
    WHAT YOU CAN ACTUALLY CALL
    
    One connection, eight things you can do with a document
    
    MCP TOOL | WHAT IT DOES | OPEN MODEL
    docs_to_markdown | PDF, scan, or page to clean markdown | docling, VL-OCR
    extract_entities | pull people, orgs, dates, and amounts | GLiNER
    redact_pii | scrub SSNs, emails, and addresses on the cluster | GLiNER PII
    describe_image | caption and tag a screenshot or photo | Florence-2, SigLIP
    extract_structured | a document into a JSON schema you define | Qwen3 + grammar
    summarize_document | a short, grounded summary | Qwen3
    answer_questions | answer questions against a document | Qwen3
    generate_structured | constrained text or JSON generation | Qwen3 + grammar
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    16 / 42
  58. 14:41

    slide. So currently, the kind of setup and, uh, things you can try are around these models. So there is this tool that's like docs to markdown, and, um, that one uses OCR, um, models. Um, these are the open models that we have currently. So the idea is it saves token costs. It uses also a very good open source model. Um, a detail here is that with

  59. 15:11

    OCR models especially, the open source models are very good, so you're, you're not compromising in quality by offloading some of the work to open source, um, OCR models. So it's not that, "Oh, I'm using open source, I'm sacrificing something." That's not the case at all, especially here and even in general, uh, open source models are catching up, and finding a way to bring them out there, bring them in production is, um, quite

  60. 15:41

    useful and quite important. There is extract entities, which would just generate the relevant entities in the docs with different NER models. There is-- are different tools around captioning and tagging. There is also, um, a capability around, uh, structure generation, uh, summarization, question answering. And the good thing is also this is open source, so you can also do a PR and add a different tool

  61. 16:10

    there right now, and that would be something that kind of we can make, make it as a part of this and, um, still it will utilize the inference, which is the bigger bottleneck in situations like this. Um, and that would be the idea. You can kind of clone the repo that I showed before and, um, you can bring up the cluster locally. But also, uh, if you, again, go on the website and request that, you'll

  62. Clone SIE and bring up the cluster

    Clone the SIE repository and run its cluster as one GPU-enabled container; the MCP edge points at that cluster.

    Text in image
    START HERE · IT'S OPEN SOURCE
    
    Clone SIE and bring up the cluster
    
    Repository screenshot:
    superlinked / sie
    [illegible]
    About
    Open-source inference server and production cluster for all the models your agent needs.
    [illegible]
    
    github.com/superlinked/sie, Apache-2.0. The cluster is one container: docker run --gpus all -p 8080:8080 ghcr.io/superlinked/sie-server. The MCP edge points at it.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    17 / 42
  63. 16:40

    receive an API key at some point. And this would be kind of the setup. You need to get, uh, the API key. You can also self-host if you're in for the longer term, let's say. Uh, so it doesn't have to be our cluster, it can be your cluster. Um, and you just need to set these things up. I'll also be releasing, so an article that will kind of explain this in a bit more detail, and you can

  64. Start the MCP edge

    The setup points the MCP edge at a cluster, generates a connector secret, and starts the edge. The cluster API key stays on the edge; the agent receives the connector bearer.

    Text in image
    DEMO STEP 1 · START THE EDGE
    In a new terminal, point the edge at your cluster and run it
    
    your VPC
    
    # the edge runs in your VPC and holds the cluster credential
    export SIE_BASE_URL=https://sie.your-vpc.internal     # your SIE cluster
    export SIE_API_KEY=[redacted]                         # cluster API key, stays on the edge
    
    # a connector secret you generate; the agent presents it as its Bearer
    export SIE_CONNECTOR_SECRET=$(openssl rand -hex 32)
    export SIE_MCP_CONNECTOR_SECRETS="$SIE_CONNECTOR_SECRET:claude-code"  # secret[:user]
    
    # start the MCP edge (FastMCP over HTTP)
    sie-mcp serve --host 0.0.0.0 --port 8088
    
    # the agent only ever holds the connector bearer, never the cluster key
    
    Interface text:
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    18 / 42
  65. Private document tools with the SIE MCP server

    The guide describes an MCP edge that runs document tools on models hosted in a SIE cluster and returns a processed artifact to the agent, while raw documents stay in the cloud.

    Text in image
    How to serve private document tools to any LLM with the SIE MCP server
    DOCUMENT PROCESSING · [illegible]
    By Filip Makraduli
    
    Give any AI agent a private document toolbox that runs on your own models, in your own cloud.
    
    This guide shows you how to stand up the SIE MCP edge: a Model Context Protocol (MCP) server that exposes document tools (parse, redact, extract, summarize, OCR, caption, structured output) to any agent, where the heavy work runs on open models you host on your own SIE cluster. Connecting an agent to this server lets it work over your private documents (contracts, NDAs, invoices, scans) without the raw bytes or the personal data ever leaving your cloud or reaching a frontier model API. The agent only ever gets a small, clean artifact back.
    
    SIE is open source and free under Apache 2.0. Stop reading and start cutting per-token costs whenever you like: the engine runs on your own hardware, from a laptop to a Kubernetes cluster.
    
    ★ Star SIE on GitHub
    Run the 2-minute quickstart →
    
    Unlike a typical MCP server that wraps a local folder or a SaaS API and hands the model raw content to read, the SIE edge is model-backed: each tool runs open models on your own infrastructure and returns a small, processed result. Any MCP client can connect to it: Claude Code, claude.ai, Cursor, or any local-
    
    ON THIS PAGE
    Why I wanted this: cost, privacy, adaptability
    How SIE MCP differs from a standard MCP server
    Use cases
    How it works: three tiers
    Prerequisites
    Run the SIE MCP edge
      Step 1: Point at a SIE cluster
      Step 2: Configure the edge
      Step 3: Start the edge
    Connect an agent
      Claude Code
      claude.ai (OAuth)
      Any MCP client
    Run it: the document pipeline
    The tools
    Where LoRA fits
    Troubleshooting
    Security notes
    Copy Markdown
    View as Markdown
    
    Interface text:
    WHY DID WE OPEN-SOURCE OUR INFERENCE ENGINE? READ THE POST →
    Superlinked
    MODELS  EXAMPLES  DOCS  BLOG  GITHUB ★ 2.1K  CONTACT US →
    ← All Posts
    WE USE COOKIES FOR ANALYTICS. LEARN MORE
    ACCEPT  DECLINE

    17:08Demo milestone

  66. 17:10

    go step by step and run this. So no, no rush. Uh, you can enjoy the talk and relax and try things out at your own time in many ways. And, um, here we have the repo, and also the link to kind of getting the, uh, the computes and the cluster. So you can basically request, and you get some form that you fill out, and then you'll receive the API key. And this is just the setup that I'll be going through and then

  67. 17:40

    trying out. Uh, and hopefully the demo gods are good. Someone mentioned this as, uh, a thing at one of the talks, so I like the idea. Um, and yeah, this is kind of just the setup, um, which I have kind of done to an extent. And I will now do the demo. So I'm going to kind of Claude Code. I am in the relevant packages directory. So I can

  68. Connect Claude

    One command connects Claude to the MCP edge; another installs document skills. The edge holds the cluster key, which the agent never sees.

    Text in image
    DEMO STEP 2 · CONNECT CLAUDE
    Connecting it is two commands
    
    # 1. point Claude at the SIE MCP edge running in your VPC
    claude mcp add --scope user --transport http \
      superlinked-docs https://edge.your-vpc.internal/mcp \
      --header "Authorization: Bearer $SIE_CONNECTOR_SECRET"
    
    # 2. install the document skills, then restart Claude Code
    cp -R claude-code/* ~/.claude/skills/
    
    # the edge holds the cluster key; your agent never sees it
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    terminal
    first call
    19 / 42
  69. From contracts to a private knowledge graph

    The demo plan parses a contract and invoice into linked notes, redacts an NDA's SSN on the cluster, then reveals a graph of companies and people. It uses a standing synthetic vault.

    Text in image
    DEMO STEP 3 · DROP THE DOCS
    Watch a pile of contracts become a private knowledge graph
    
    01
    PARSE AND LINK
    Drop in a contract and an invoice. SIE returns clean text and the agent writes linked notes, every company a link.
    
    02
    REDACT
    An NDA has someone's SSN. We scrub it on the cluster first, so the note only ever shows a placeholder.
    
    03
    REVEAL
    Open the graph view: the documents are now one connected web of companies and people.
    
    A runnable version of this demo, with the standing synthetic vault, ships as an example with the SIE MCP edge. The three core docs slot into it live.
    
    Superlinked
    RUN AGENT DOCUMENT WORK ON YOUR OWN GPUS
    GITHUB.COM/SUPERLINKED/SIE
    
    Interface text:
    20 / 42
  70. MCP package setup

    The presenter opens the MCP package in Claude Code; the assistant identifies the example directory before the document demo begins.

    Text in image
    There's no integrations subfolder inside sie_mcp. Let me know which one you want and I'll work there — my best guess is packages/sie_mcp (the MCP package). Want me to go there?
    
    Sautéed for 22s
    
    thats the one
    
    Listed 1 directory
    
    We're in packages/sie_mcp. Here's the layout:
    - src/ — the MCP package source
    - plugin/ — plugin code
    - examples/ — including the obsidian-contract-graph example (with your uncommitted changes)
    - docs/, tests/, Dockerfile, pyproject.toml, README.md
    
    What would you like to do here?
    
    Baked for 5s
    
    recap: We're exploring the sie_mcp package at packages/sie_mcp to do some work. Next step is for you to tell me what you'd like to do here. (disable recaps in /config)
    
    can you
    
    Interface text:
    Navigate to MCP integrations folder
    sie git:(main) × Opus 4.8 (1M context) [ctx: 3%] SIE saved ~106 today
    auto mode on (shift+tab to cycle)

    18:04Demo milestone

  71. 18:10

    say, "Okay, can you..." So I have basically just a set of files that are in an inbox. Um, folder. So I'll just show you here. So for example, this is the graph, and it's like inbox, and you have different... Imagine these are different emails. So this is all synthetic data, but, uh, relevant data. I'm not using the real data that inspired this project. But, um, obviously, these are

  72. Example document inbox

    The example inbox contains synthetic documents, including invoices and an NDA. The presenter asks viewers to imagine the files as different emails.

    Text in image
    sie / packages / sie_mcp / examples / obsidian-contract-graph / inbox
    
    Name | Last commit message | Last commit date
    acme-globex-msa.html | release: v0.6.13 | 4 days ago
    globex-invoice.html | release: v0.6.13 | 4 days ago
    globex-msa-amendment.html | release: v0.6.13 | 4 days ago
    hooli-cloud.html | release: v0.6.13 | 4 days ago
    initech-invoice.html | release: v0.6.13 | 4 days ago
    initech-license.html | release: v0.6.13 | 4 days ago
    massive-dynamic-jda.html | release: v0.6.13 | 4 days ago
    omar-haddad-employment.html | release: v0.6.13 | 4 days ago
    soylent-po.html | release: v0.6.13 | 4 days ago
    stardust-nda.html | release: v0.6.13 | 4 days ago
    umbrella-sow.html | release: v0.6.13 | 4 days ago
    vandelay-supply.html | release: v0.6.13 | 4 days ago
    wayne-series-b.html | release: v0.6.13 | 4 days ago
    
    Interface text:
    superlinked / sie
    Code  Issues 5  Pull requests 10  Agents  Actions  Wiki  Security and quality 125  Insights  Settings
    main  Go to file  Add file
    github-actions[bot] release: v0.6.13  [illegible] · 4 days ago  History

    18:27Demo milestone

  73. 18:40

    stuff like, okay, um, there are some emails about an invoice and, um, some sensitive information all over, and you can just go through this. There is, um, some NDA that would have like phone number and social security number, for example. So that's how the data looks. And for example, here you can go and, uh, maybe say, "Can you,

  74. Example document inbox

    The example inbox contains synthetic documents, including invoices and an NDA. The presenter asks viewers to imagine the files as different emails.

    Text in image
    sie / packages / sie_mcp / examples / obsidian-contract-graph / inbox
    
    Name | Last commit message | Last commit date
    acme-globex-msa.html | release: v0.6.13 | 4 days ago
    globex-invoice.html | release: v0.6.13 | 4 days ago
    globex-msa-amendment.html | release: v0.6.13 | 4 days ago
    hooli-cloud.html | release: v0.6.13 | 4 days ago
    initech-invoice.html | release: v0.6.13 | 4 days ago
    initech-license.html | release: v0.6.13 | 4 days ago
    massive-dynamic-jda.html | release: v0.6.13 | 4 days ago
    omar-haddad-employment.html | release: v0.6.13 | 4 days ago
    soylent-po.html | release: v0.6.13 | 4 days ago
    stardust-nda.html | release: v0.6.13 | 4 days ago
    umbrella-sow.html | release: v0.6.13 | 4 days ago
    vandelay-supply.html | release: v0.6.13 | 4 days ago
    wayne-series-b.html | release: v0.6.13 | 4 days ago
    
    Interface text:
    superlinked / sie
    Code  Issues 5  Pull requests 10  Agents  Actions  Wiki  Security and quality 125  Insights  Settings
    main  Go to file  Add file
    github-actions[bot] release: v0.6.13  [illegible] · 4 days ago  History

    18:51Demo milestone

  75. MCP package setup

    The presenter opens the MCP package in Claude Code; the assistant identifies the example directory before the document demo begins.

    Text in image
    There's no integrations subfolder inside sie_mcp. Let me know which one you want and I'll work there — my best guess is packages/sie_mcp (the MCP package). Want me to go there?
    
    Sautéed for 22s
    
    thats the one
    
    Listed 1 directory
    
    We're in packages/sie_mcp. Here's the layout:
    - src/ — the MCP package source
    - plugin/ — plugin code
    - examples/ — including the obsidian-contract-graph example (with your uncommitted changes)
    - docs/, tests/, Dockerfile, pyproject.toml, README.md
    
    What would you like to do here?
    
    Baked for 5s
    
    recap: We're exploring the sie_mcp package at packages/sie_mcp to do some work. Next step is for you to tell me what you'd like to do here. (disable recaps in /config)
    
    can you
    
    Interface text:
    Navigate to MCP integrations folder
    sie git:(main) × Opus 4.8 (1M context) [ctx: 3%] SIE saved ~106 today
    auto mode on (shift+tab to cycle)

    19:04Demo milestone

  76. 19:11

    uh, redact the data from the NDA document?" Something like that. Uh, cool, we get free credits. So, um, the way things look, one example is this. So this is some, some of the stuff I tried before. So this is the NDA, and then you get this kind of like, uh, redacted, uh,

  77. 19:41

    document that extracts the relevant details, but obviously there is only email and person, and the entities are masked. And all of this is done on your VPC. So Claude Code doesn't see this stuff or whatever agent you're using. Um, and in c-certain situations, you can get better performances with the OCR stuff. Um, and so for

  78. NDA redaction attempt

    The assistant finds the NDA, loads the redaction skill and calls the document tool without reading the file into context. Its attempt to write the redacted output reports an error.

    Text in image
    recap: We're exploring the sie_mcp package at packages/sie_mcp to do some work. Next step is for you to tell me what you'd like to do here. (disable recaps in /config)
    
    can you redact the data from the nda document
    
    Listed 1 directory
    
    I found the NDA document: inbox/stardust-nda.html. I'll redact PII from it using the redact-pii skill.
    
    Skill(redact-pii)
      Successfully loaded skill
    
    I'll redact the NDA without reading it into context. Let me load the MCP tool and base64-encode the HTML file.
    
    Called superlinked-docs, ran 1 shell command
    
    Write(packages/sie_mcp/examples/obsidian-contract-graph/processed/stardust-nda.redacted.md)
      Error writing file
    
    Roosting… (1m 5s · ↓ 2.9k tokens · thinking)
      Tip: Share Claude Code and earn £10 in usage credits · /passes
    
    Interface text:
    Navigate to MCP integrations folder
    sie git:(main) × Opus 4.8 (1M context) [ctx: 4%] ⚡ SIE saved ~121 today
    auto mode on (shift+tab to cycle) · ← for agents

    20:08Demo milestone

  79. 20:10

    example, you can see here successfully loaded skill. I found the NDA document. So here I've set up the cluster, so I just input the endpoint and the API key. You would need to do this slightly different, but you can totally prompt even Claude Code, uh, and so on. And here, um, we get, okay, the file contains the freshly redacted output, um, redacted then spans from this to this.

  80. 20:40

    Um, and these are kind of the label counts. It gives us some info there. Um, and maybe we can do something like, "Okay, can you pre-process the scans and also redact them?" To try to see-- So this is in natural language to try to get the OCR models to work and that tool to be called. So you can also configure the tool calling and

  81. 21:10

    all that. Um, and also there is this, uh, status line here that counts the token saved, but I need to also update this a bit to kind of do it properly. But that's also part of the, um, kind of advantage that you can actually see you're saving on token costs. So I'll pre-process the thing to markdown, then redact it. Um, and it's working. And for

  82. 21:40

    example, we can see-- I'll just show you some of the files, just so that I don't like go through all the stuff all the time. There is this, um, let's say, contract before. So this is how it looks. And this is a scan, so I don't know if you can see now 'cause it's a clean one, but this is-- You can see. So it's an image. It's not like text, so it needs, um,

  83. 22:10

    OCR probably. And then if we do the

  84. 22:17

    after one, this is some-- You can see markdown file here, um, that's extracting this stuff, but also redacting them. So... Whoops, cursor. So, um, the idea is that you pre-process the document through the OCR tool calling thing. You get, um, the token saving cost, the better context management, and so on. But you also get the

  85. 22:47

    redacted file, so personal information is not leaked. And

  86. 22:54

    this is also getting done in the meantime.

  87. 22:58

    So that's the idea from kind of a functional perspective, but a lot of things are happening in the background, so it's not just like, um, the privacy aspect and this looks easy, but the heavy lifting is done by this part. So Superlinked, um, and the inference engine and the cluster is set up in a way that it allows you to have multiple models, have hot swapping, uh, of models on different GPUs,

  88. 23:29

    um, have smarter batching so that you can kind of test out multiple models. For example, if you have five LoRAs, uh, fine-tuned to different sub-areas of your, um, work, you can kind of hot swap between them and test out which one is the best even. So we have, uh, a gateway that, um, kind of, um, helps us connect this to different worker pools that each have, um,

  89. 24:00

    this batcher per worker, so that the batching is done per worker, and that gave us better performance instead of just having all the batching upfront. And this is, of course, the architecture of the MCP, uh, solution. So how it works with, um- SIE, so you can see this part on the right, um, is in your VPC. So both the kind of the MCP

  90. 24:30

    work that gets offloaded to Superlinked SIE is in your own private cloud. Um, and this is what gave us the advantage performance-wise, or at least one of the advantages, was the batching technique where, um, if you kind of do the batching without having one shared queue that then each of the workers pull from. In our testing and in general, performance

  91. 24:59

    was lower, so we were able to kind of do this, um, setup and have an end-to-end improvement on latency and performance, even with different models. And the idea is that you also want different worker pools because, for example, at some point you might want to try a heavier model but also have another one that can totally run really well on an L4 spot instance. So you might be like, "Okay, I don't need to waste, um, kind

  92. 25:29

    of this more expensive hardware." And also we have auto-scaling, so this, um, can kind of come down when not used and so on. So, um, that's the setup. And there is the hot swapping of models, so, um, especially around smaller models that can fit into one GPU that are doing like named entity recognition or, um, even smaller generation or

  93. 25:58

    embeddings and so on. Um, you can benefit a lot from having multiple models on one GPU being switched around and swapped. And this goes in the direction of kind of what the MCP does and the tool calling aspect, where you could build agents and have this inference part offloaded using Superlinked, and you can get different bundles of tasks set up, so basically

  94. 26:28

    document parsing, like I explained, or embedding content, or writing code with, um, some generation models, or extracting images or captions from data and so on. Uh, or even like guardrails and structure generation stuff for policy checking and so on. So I'd be also happy for you-- So you get more credits if you, um, kind of build a project and so on. So if you contribute a tool, um, that is maybe around

  95. 26:58

    content guarding or policy checking or whatever you find useful, um, we'd, we'd love to kind of, uh, have that as a contribution. And in some of our tests, we've also, uh, seen that due to this infrastructure that I explained, um, we get very good performance around embedding models. So we also have generation models. Um, but the tests that we have, the benchmarks for, for now

  96. 27:28

    are around embedding models. Um, so you get kind of, um, 10X lower price roughly, um, with very similar quality. So you can see there the kind of... The best, uh, model we had per task for embedding was 99.8% to, uh, kind of the frontier one, and this-- we evaluated this using MTEB tasks. Um, so yeah,

  97. 27:58

    that's, uh, that's the case. We'll have more benchmarks and details around this soon as well. But the point of this is the-- is that, um, sometimes, especially in production use cases and in-- with certain loads, you get the advantage, um, through the end-to-end improvement. So if your infrastructure and architecture is set up well, you basically get the latency improvement and the better performance, um, even

  98. 28:29

    if your per model inference is not optimized. And we're doing both in our case, but that was a revelation that for production use cases was very helpful to know.

  99. 28:43

    And on the example around LoRAs, we've seen that you could kind of, mm, test out LoRAs fairly quickly and fine-tune them, so we're exploring work on that area. Um, so some of the colleagues worked on this German language-specific LoRAs that were fine-tuned, and they were fairly cheap. So having a way to do multiple LoRAs and test them out in production and deploy them quickly,

  100. 29:12

    um, seemed to be quite useful and, um, improved performance in this very, let's say, niche, um, use cases like German legal language, let's say. And, uh, this is kind of how the MCP works. Um, I mentioned a bit around this.

  101. 29:36

    And there are some failure modes that are already there. But again, this is working and it's well, but there are so many more things to do, and I'm kind of very happy to have your, uh, input and PRs and, uh, even just like, um, comments. So you can add me on LinkedIn and all that, and I'm happy to chat always. And that's the idea that the same kind of MCP edge handles every

  102. 30:06

    document job. So you can do question answering, pulling facts, reading documents. Um, so yeah, this should also

  103. 30:18

    work and there is different, again, labels extracted and so on. And you can try this like, um... This, I think, moved the number. But again, um, you can test this live and, um, test out different tools with kind of your own demo data.

  104. 30:39

    And I've explained this to a certain point and what it does now. Um, and yeah, there's the token-saving aspect, and that's very important, um, and not sending data to external APIs, and it all runs in your cloud. Um, and there is a lot of stuff to do kind of in the future. Um, but the operational capability is still there. So we have the

  105. 31:09

    Helm charts and the Kubernetes cluster, and you can use also Terraform Apply to deploy a cluster, which is also open source, so it, it's not, um, hidden, like kind of, uh, just the code is open source, but we have basically everything. Um, and this can go beyond just documents. So if we look at this idea of having the inference solved as a little box in your whole workflow, it unlocks a lot of

  106. 31:39

    opportunities that can go kind of beyond text with other models, um, looking at transcripts, um, even graph-based data, generating ontologies and so on by different tool calls, structure generation. So there are, um, different opportunities and, um, one direction that we're exploring as well is model routing within your own private cloud, um,

  107. 32:09

    which is quite powerful, and I think the, the field is moving a bit in that direction with usually teams exploring, um, this API-based optimization where you have, um, a combination of models working together and the end-to-end performance is better. Um, and there is an option to do something similar in this way. However, this is more like a future roadmap idea, so this is currently not built in. But, um,

  108. 32:39

    the idea is to also pick the models based on the task. So the tool calling will not be tied just to the tool itself, but you could also understand which model to pick for the underlying tool. So if I've only set up, um, one OCR model, I could say that, "Okay, for this tool call, I actually want OCR cheap," or some other sort of tool call that, depending on the task, adapts to what I'm trying to do. And, um,

  109. 33:09

    that's a powerful direction. And there is also playing around with like intent, and there's this mixture of agents approach. Um, because if you already-- Another powerful aspect on why SIE is really good for this is that if you already have the models warm in your GPU, you can hit them much quicker and get the responses quicker, and you can do this model routing based on also

  110. 33:39

    the, the-- how hot the model is or how kind of-- what, what was evicted last, what wasn't. So there is a lot of options also playing around this, uh, card of latency and trying to figure out what are the best models, not just from a general perspective, but from an infrastructure perspective. And, um, doing this is, uh, quite useful, and I, I think a lot of, um,

  111. 34:09

    stuff will be done in this, in this way, um, kinda fairly soon. And, um, yeah, this is the idea that you can kind of, um, estimate, uh, per model to find which models are warm. Um, and then in some cases it would be cheaper to hit a model that's already hot but more expensive rather than reloading a model that's cheaper but kind of, uh, not already there in your GPU. So

  112. 34:39

    this logic can be set up as well to optimize costs and usage beyond the tool level. Um, and I'm just mentioning this stuff just to kind of showcase how powerful, um, inference is and having good model inference set up, um, with all the infrastructure around it, uh, can actually unlock a lot of, um, use cases. There is also, um, a potential for doing

  113. 35:09

    stuff like, um, judges talking between each other or like the council of models and so on. Again, this is more of a future roadmap, but, um, this is a direction that also is an option for things like this where, okay, if you want to include some maybe reasoning tool calls or adjust the response based on like difficulty of tasks, which models are called. For example, uh, an issue I had when building

  114. 35:39

    this was that for one of the summarizing tools, I had, um, model that was, um-- that had, um, thinking tokens. So basically the summarization, mm, was either very short or it didn't happen 'cause everything was done on the thinking side. So, uh, you have to also kind of keep in mind what models you use and whether you toggle the thinking tokens or not. Um, but sometimes reasoning can be beneficial and,

  115. 36:09

    um, it's useful to have a way to do that quickly from an infrastructure side.

  116. 36:18

    And of course, there are some kind of, um, downsides to having, um- A router or a council and so on. However, um, we're also very strong on evals and trying to test models before doing this. So, um, there are different ideas here that can be done. Um, and yeah, um, basically, we don't want to also spend GPU on some models reasoning forever and then

  117. 36:48

    nothing happens. Um, or also have biased models as judges, um, or kind of optimizing something, uh, that, um, then becomes kind of-- By, by optimizing something, you

  118. 37:05

    kind of escape from making it as a real target, but it just becomes something that, like, the models hack and never actually, um, use it-- You can never use that as a proper evaluation. Um, and you can look at our repo. So this is the, kind of the QR code if you haven't yet. Um, and I think the main takeaway for today is that infrastructure and inference

  119. 37:35

    is far more important even for this very API-friendlier ergonomic designs, where you just work with Claude Code, and you can kind of offset your, um, sensitive data, your specific tasks in different ways. And, um,

  120. 37:54

    still the backbone is, uh, the inference. And for example,

  121. 38:01

    I will go here again. So this will be published as well. And, um, you can also find kind of what files are supported, where the LoRA aspect feel, uh, fits, um, what are the kind of, uh, the troubleshooting guides, and so on. And also, um, the most important thing is ask for kind of your, uh, API keys and so on. We also have a full model catalog. We're kind of

  122. 38:31

    also revamping this to be more detailed and useful. But basically, you can have different, uh, you can select different output types, different architectures, because, um, in order to optimize, um, the models, um, and the inference, you need to adapt models in different bundles. So you need to kind of all models maybe implement attention differently, so you cannot run them and run the forward pass in the same way. So you need to have different model runtimes for different model

  123. 39:01

    families so that this works. And there are a lot of details around this. And you can see that models are tagged based on, like, whether they do encoding or scoring. So you can also use, um, scoring models that do like re-ranking basically, if you-- even in this use case of the tool calls. Um, and the advantage there is that you can basically play with your own version of, uh, retrieval through this, um,

  124. 39:31

    MCP and so on. And I would really love if you could kind of contribute to this or, um, give us ideas on how to kind of set this up and, um, build more stuff on top that, um, people find useful. Um, we did, um, a hackathon in London with TechEurope and DeepMind recently, where a lot of people kind of tested this out and were, um, very kind of happy to

  125. 40:02

    work both on the retrieval and re-ranking side, but also generation. So, um, having the, the way of doing both but being supported by that inference is, is very cool. And again, I encourage you to take this, um, free, um, kind of cluster infrastructure credits that you can use. And we also have a lot of examples and, um, full kind of docs that you can have a look at. Um,

  126. 40:33

    basically a quick start and then different model versions and how you can also look at how you can migrate. For example, if you have some workflow done with like OpenAI API, then you're like, "Okay, cool. I wanna test this thing out quickly. What can I do?" You have those, um, options as well. And, uh, this is the repo. So again, this is the package. Um, and here you have kind of what it exposes,

  127. 41:03

    um, and how the credentials are set up. So the, the README here, um, can be, um, checked out. This is the example. So if you contribute with examples and have something more here, that would be very useful. And, um,

  128. SIE MCP package directory and README

    Makraduli opens the SIE MCP package. Its README describes offloading private document work to open models on your GPUs and returning a small artifact to Claude.

    Text in image
    sie-mcp: the SIE MCP edge
    
    Run SIE's document jobs as an MCP server in your own cloud. Any Claude surface (Claude Code, the desktop app, claude.ai, Cowork) connects to it and offloads heavy, private document work to open models on your GPUs, then works from the small artifact it gets back. The raw bytes and any PII reach your edge, never the model API.
    
    sie-mcp is a lightweight sie_sdk client: no GPU and no model weights. It holds one cluster credential, exposes the document tools below over streamable-HTTP MCP, and authenticates clients with a connector secret.
    
    Claude
    
    Interface text:
    superlinked / sie
    Code
    Issues 5
    Pull requests 10
    Agents
    Actions
    Wiki
    Security and quality 125
    Insights
    Settings
    main
    sie / packages / sie_mcp /
    Go to file
    Add file
    github-actions[bot] release: v0.6.13
    9220205 · 4 days ago
    History
    Name | Last commit message | Last commit date
    ..
    docs | release: v0.6.13 | 4 days ago
    examples/obsidian-contract-graph | release: v0.6.13 | 4 days ago
    plugin | release: v0.6.13 | 4 days ago
    src/sie_mcp | release: v0.6.13 | 4 days ago
    tests | release: v0.6.13 | 4 days ago
    Dockerfile | release: v0.6.10 | last week
    README.md | release: v0.6.13 | 4 days ago
    pyproject.toml | release: v0.6.10 | last week
    README.md

    41:08Demo milestone

  129. Private contract knowledge graph example

    The example uses the SIE MCP edge to parse legal documents, extract entities and redact PII. Claude Code writes to an Obsidian vault, while the agent sees only small markdown.

    Text in image
    Example: a private contract knowledge graph (SIE MCP edge + Obsidian)
    
    Turn a folder of messy legal documents into a private, linked Obsidian knowledge graph. Parsing, entity extraction, and PII redaction all run on open models on your own cluster through the SIE MCP edge, so the raw documents and the personal data never reach the model API. The agent only ever sees small markdown.
    
    An Obsidian vault is just a folder of markdown. Claude Code’s file tools write into it; the SIE MCP edge does the document processing. Nothing in this example modifies the sie_mcp package.
    
    What is in here
    
    Interface text:
    superlinked / sie
    Code · Issues 5 · Pull requests 10 · Agents · Actions · Wiki · Security and quality 125 · Insights · Settings
    main / sie / packages / sie_mcp / examples / obsidian-contract-graph
    Go to file · Add file
     github-actions[bot] release: v0.6.13 · 4 days ago · History
    Name · Last commit message · Last commit date
    ..
    .obsidian · release: v0.6.13 · 4 days ago
    inbox · release: v0.6.13 · 4 days ago
    processed-fallback · release: v0.6.13 · 4 days ago
    vault · release: v0.6.13 · 4 days ago
    .gitignore · release: v0.6.13 · 4 days ago
    README.md · release: v0.6.13 · 4 days ago
    token-savings.html · release: v0.6.13 · 4 days ago
    README.md

    41:13Demo milestone

  130. 41:26

    this is where you apply for the credits that, um, help you to build, build things and try things out. Uh, this was very popular at the hackathon, so, uh, very kind of happy for you to try this out. And I think since we're slowly approaching the end, I can take some questions as well. Um, you'll just kind of speak and I'll

  131. 41:55

    restate and reiterate the question because of the recording. So yeah, I'm happy to answer a few things, and we can also play around with this more if you have some query that you want to try. Um, yeah.

  132. 42:12

    So, uh, using MCP through Claude, uh, there-- um, I'm still concerned about the privacy issues, right? Because Claude is gonna consume the tokens of whatever document you might be sending off to be evaluated. How do you control-

  133. 42:29

    So it wouldn't do that basically. So the concern is around, uh, the question is around privacy. So basically, you just-- Claude would just get the redacted version of the document, so it wouldn't get the full document that you're inputting there. So that's kind of the, the setup that we have currently. So it would only see that side of things.

  134. 42:52

    But I'm saying-

  135. 42:52

    Yeah

  136. 42:52

    ... you're in Claude, you're telling it to do something-

  137. 42:55

    Yeah

  138. 42:55

    ... that's ultimately gonna go to an MCP, right? That's the step.

  139. 42:59

    Yeah.

  140. 42:59

    Claude had to make the decision to call the MCP. At some point, it will-- it could have read the data out of the file as part of its decision-making. How do you-

  141. 43:09

    Yeah. So I mean, this can be kind of evaluated, like whether this happens, like whether Claude does this kind of off, off-rails situation. Definitely, that can be kind of, uh, tested more and more. But in the test that I've done, like, uh, if you host the kind of MCP and everything else is on the virtual private cloud, um, this seemed to have worked without kind of the data leaking. But I'm sure there can be more guardrails to kind of reinforce this at that initial stage.

  142. 43:39

    Or in the worst case even, you could say, "Okay, I'm concerned I can build my own harness and use an open source." Exactly.

  143. 43:47

    Oh, yeah. I, I get that.

  144. 43:48

    Yeah, yeah. Yeah. And in that way, even, um, like you could still save on tokens and get better context even if... Like this is Claude Code in my example, but it can be any harness. If you implement the tool calling well, I think, uh, this can be done. But happy, uh, happy to get a contribution around this as well. Um, could be very useful to have this like pre-processing layer as well. Um, yeah, another-

  145. 44:16

    Yeah, yeah.

  146. 44:16

    Yeah.

  147. 44:16

    Your MCP server's on your private cloud, right?

  148. 44:18

    Yeah.

  149. 44:19

    So then you have that private data like he's talking about.

  150. 44:21

    Yeah.

  151. 44:22

    Uh, it goes through your MCP and reads the data through that, right?

  152. 44:26

    Yeah.

  153. 44:26

    That setup.

  154. 44:31

    You'd have to like advertise the existence of the file to the worker. Yeah. Zero trust, not connected to the same file system. Yeah. So it doesn't have to be.

  155. 44:39

    Mm-hmm.

  156. 44:40

    The SIE would have to pull the file down.

  157. 44:42

    Yeah, yeah. So again, the question is kind of like how do we set this up to make sure that the privacy is well preserved, right?

  158. 44:53

    Yeah, on, on your server. How is it like-

  159. 44:56

    So on, on the, on the SI- side of things?

  160. 45:00

    When I launch a cluster, how is it set up?

  161. 45:04

    So the cluster in this case is like, um, what we have, um, but that can be your own cluster. So through the repo, you can set up your own cluster in your own, uh-

  162. 45:15

    Configure however I want.

  163. 45:16

    Yes, exactly. Yeah, so you can configure the cluster in any way you want. I'm just using a managed cluster that we have for the purpose of, uh, the demo and the example, and we use that, for example, for hackathons and so on. So we host the hardware. But you can totally do this yourself, so it's self-hosted. And y- in the-- as I said, in the repo, you have the ability to do Terraform apply and have all the infrastructure set up. And if you have the GPUs and so on, you basically,

  164. 45:46

    um, yeah, have that set up and it's totally your own.

  165. 45:53

    Your, your MCP has got a file watcher?

  166. 45:56

    Sorry, again?

  167. 45:57

    Your MCP has a file watcher and reads the file?

  168. 46:00

    The-- Does the MCP have a file?

  169. 46:03

    Does it read the file? Consume the file.

  170. 46:04

    So, uh, it just sends it to the main worker and, uh, there the file is processed. So kind of there is that... Yeah.

  171. 46:23

    And yeah, you can, uh, again, I think at the entrance there is the, uh, free compute that you can get to try out. Um, again, if you want to self-host, you can still self-host. It's not, um, strict in that sense. We just do this so that things can go quicker. Um, but again, you don't have to, uh, do it in a way that you use our cluster. You can self-host.

  172. 46:57

    And yeah, we're-- O- also, you can kind of add me on LinkedIn again. We can chat there and, um, thank you for attending.