Skip to main content
Every source in Scout is a ContextProvider. This page covers how to add more, whether by plugging in an MCP server or writing your own. Each new source follows the same pattern:
  1. Configure auth (env var, OAuth, service account, MCP token).
  2. Register the provider in scout/contexts.py.
  3. Restart Scout.
  4. Verify with curl http://localhost:8000/contexts | jq.
Each provider becomes query_<id> (and optionally update_<id>) tools on Scout. The agent calls them like any other tool.

Connect Google Drive

Scout reads Drive using its own service-account identity. You create the account once with the ./scripts/google_setup.sh helper, share folders with the service account email, and set GOOGLE_SERVICE_ACCOUNT_FILE in .env. Why a service account? Borrowing your credentials would collapse the audit trail. Everything Scout does would show up as something you did. With its own identity, actions stay attributable. Full setup, including the manual path for orgs that block service-account keys: GDRIVE_CONNECT.md.

Connect any MCP server

Anything with an MCP server plugs in: Linear, GitHub, Notion, Postgres, Stripe. Add an MCPContextProvider entry to scout/contexts.py:
MCPContextProvider(
    server_name="linear",
    transport="stdio",
    command="npx",
    args=["-y", "@linear/mcp"],
    env={"LINEAR_API_KEY": getenv("LINEAR_API_KEY", "")},
    model=default_model(),
)
Add the secret to .env, restart, and Scout gets a query_mcp_linear tool. The full reference covers mode=tools vs mode=default, plus the gotcha around Node-based servers in Docker: MCP_CONNECT.md.

Build your own provider

If your source isn’t covered by an MCP server, write a ContextProvider. Four methods: status, astatus, query, aquery. The Scout README has the worked example in its Add your own section. The agno.context.web.provider module is a complete reference implementation.

Other knobs

TaskWhere
Try Parallel’s premium web backendSet PARALLEL_API_KEY in .env
Scope the filesystem to a different directoryEdit FS_ROOT in scout/contexts.py
Customize the CRM schemaEdit the scout_* table creation in db/
Run evalsEVALS.md

Going deeper

To learnSee
How context providers work in Agno generallyContext
The full demo OS referenceDemo OS
Comparable templatesDash, Coda
Building a fully custom AgentOS appBuild a Product