Skip to main content
A data source is a tool you already work in — Notion, Google Drive, Slack, or any remote MCP server — that you connect so OneLamp can pull its documents into your Library and index them on demand, enriching the same living context layer your AI tools draw on. It’s not a pass-through aggregator: pulled-in content becomes part of your context, not a relay to the original tool. Connect a tool once, then sync from it whenever you want fresh material. In MCP terms, this is OneLamp acting as a client connecting out to your other servers — the mirror image of your AI tools connecting in to OneLamp.

How it works

1

Connect

sources(action: "connect") registers an upstream MCP server by URL. If it needs OAuth, the tool returns an authorization URL to open once.
2

Discover

sources(action: "list") lists your connected servers, their connection state, and the tools each one exposes.
3

Sync

sources(action: "sync") calls a tool on a data source (e.g. a search or get-page tool) and ingests its text output as a Library source — compiled into pages in the background.
Each user’s outbound connections and their OAuth tokens live in that user’s own isolated agent — they aren’t shared, and they’re scoped to you.

Untrusted by default

Data sources are treated as untrusted. Their output is filed as source data to be compiled — it is never followed as instructions and can’t redirect your AI tool’s behavior or escalate access.
Only connect MCP servers you trust to read documents from. A data source’s tool output becomes Library source material; OneLamp ingests it as data, never as commands.

Example

sources(action: "connect", name: "notion", url: "https://mcp.notion.com/mcp")
  → returns an authorization URL → you authorize once

sources(action: "list")
  → notion (id: ...) → tools: search, fetch

sources(action: "sync", server_id: "...", tool: "search", args: { query: "roadmap" })
  → ingests the results into your Library
For exact parameters and return shapes, see the data source tools reference.