# The Source: onboarding for AI agents

> Evidence-backed open-source intelligence: credible open-source alternatives to commercial software, with project health, momentum, dates and provenance. Public, read-only, no account.

Version: 1 · Human page: https://de-alwis.com/lab/the-source/ · Maintainer: Keith De Alwis

## Read

The Source maps commercial SaaS products to open-source projects that can credibly replace them. A recommendation is verified against the project's own repository host, maintained within the last twelve months and under a recognised open-source licence. Each is scored for Replacement Fit and Project Health, with confidence and provenance.

Every project carries a tier:

- `recommended`: in the canonical layer with at least one recommended relationship.
- `scored`: evaluated, but not recommended for any product.
- `discovery`: discovered, not scored. Never present a discovery project as a recommendation.

Scores and strengths/gaps notes are machine-derived, not editorial. Stars, licences, releases and activity dates are observed. Keep the two apart when you answer.

## Connect

MCP endpoint (Streamable HTTP, no authentication): https://source-mcp.de-alwis.com/mcp

Per client (the user may need to approve or perform the UI steps):

### Claude Code

1. Run the command once. It adds The Source to your Claude Code configuration.
2. Start Claude Code and type /mcp to confirm the-source is connected.
3. Ask your question. Claude Code calls the tools it needs.

Run in your terminal:

```bash
claude mcp add --transport http the-source https://source-mcp.de-alwis.com/mcp
```

### Claude

1. In Claude on the web or desktop, open Settings, then Connectors.
2. Choose Add custom connector. Name it The Source and paste the URL. No authentication is needed.
3. In a chat, switch The Source on from the tools menu, then ask.

Note: On Team and Enterprise plans an owner may need to add the connector first.

Paste as the connector URL:

```text
https://source-mcp.de-alwis.com/mcp
```

### ChatGPT

1. Open Settings, then Apps & Connectors, then Advanced settings, and turn on Developer mode.
2. Choose Create. Name it The Source, paste the URL and set authentication to No authentication.
3. Start a chat in Developer mode, enable The Source, then ask.

Note: Developer mode is a beta and depends on your plan. Workspace admins may need to allow custom connectors.

Paste as the MCP server URL:

```text
https://source-mcp.de-alwis.com/mcp
```

### Codex

1. Run the command once, or in the Codex app open Settings, MCP servers, Add server, and choose Streamable HTTP with the same URL.
2. Run codex mcp list to confirm it is registered.
3. Ask Codex to use the-source by name.

Run in your terminal:

```bash
codex mcp add the-source --url https://source-mcp.de-alwis.com/mcp
```

### Cursor

1. Add the entry to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project.
2. Open Cursor Settings, then MCP, and check the-source shows as connected.
3. Ask in Agent mode.

Add to ~/.cursor/mcp.json:

```json
{
  "mcpServers": {
    "the-source": { "url": "https://source-mcp.de-alwis.com/mcp" }
  }
}
```

### Hermes

1. Paste the prompt into a Hermes chat. Hermes edits its own config and reloads.
2. Approve the config change if Hermes asks.
3. Or add it by hand, run /reload-mcp, and check with hermes mcp test the-source.

Paste into Hermes:

```text
Add a new MCP server called "the-source" with transport type HTTP. Use the URL https://source-mcp.de-alwis.com/mcp. It needs no authentication headers. Reload MCP, list the tools it exposes, then call source_dataset_info and tell me the dataset version and when the data was last checked.
```

Or add to ~/.hermes/config.yaml:

```yaml
mcp_servers:
  the-source:
    url: https://source-mcp.de-alwis.com/mcp
```

### Any MCP client

1. Any client that speaks Streamable HTTP can connect with the URL alone.
2. No account and no key. Requests are rate-limited, 60 a minute per address.
3. Building your own agent? The MCP Python and TypeScript SDKs connect the same way.

Generic configuration:

```json
{
  "mcpServers": {
    "the-source": { "type": "http", "url": "https://source-mcp.de-alwis.com/mcp" }
  }
}
```

Some clients need the user to approve a connector or edit a local configuration file. Ask the user for that approval; do not claim a one-click install.

Without MCP, read the static JSON read layer directly:

- https://github.com/keithdealwis-ui/the-source/blob/main/api/v1/index.json (supported products, dataset version, last checked)
- `https://github.com/keithdealwis-ui/the-source/blob/main/api/v1/saas/<saas_id>.json` (ranked recommendations for one product)

## Verify

1. List the tools. Expect: `source_dataset_info`, `source_list_supported_saas`, `source_get_alternatives`, `source_detect_saas`, `source_search`, `source_get_project`, `source_get_relationship`, `source_compare_projects`, `source_recommend`, `source_emerging_projects`, `source_get_momentum`.
2. Call `source_dataset_info`. Record `dataset_version` and `data_as_of`, and check `freshness.stale` is false.
3. If the snapshot is stale or a layer reports degraded, say so in your answer.

## Ask

Sample task: compare two open-source alternatives to Slack with evidence. Call `source_get_alternatives` with `{"saas": "Slack"}`, then `source_compare_projects` on the candidates. If the result reports `insufficient_recommendations`, say how many credible alternatives exist rather than padding the list.

## Tools

- `source_dataset_info`: Which snapshot is served, when repositories were last checked, counts, sources, licence. Call this first.
- `source_list_supported_saas`: Commercial products with a published page of ranked recommendations.
- `source_get_alternatives`: `saas` (id, name, alias, domain or URL), optional `limit`, `include_discovery`. Ranked, evidence-backed open-source alternatives.
- `source_detect_saas`: `url`. The supported product a URL belongs to.
- `source_search`: `query` with optional filters (`tier`, `licence`, `maintenance_status`, `min_health`). Every result carries its tier.
- `source_get_project`: `project`. Live facts, tier and every relationship, with observed dates.
- `source_get_relationship`: `saas`, `project`. The full relationship, upstream provenance and why it is or is not recommended.
- `source_compare_projects`: `projects` (2 to 5). Licence, maintenance, health, fit, momentum and the uncertainty in each.
- `source_recommend`: `need` and/or `saas` plus hard constraints. Reports what the data cannot judge in `not_evaluated`.
- `source_emerging_projects`: Repositories by star growth over 1, 7 or 30 days, plus the Community Radar ranking.
- `source_get_momentum`: `project`. Every momentum window, and each counted community mention with its permalink.

## Answering rules

- Show `live_checked_at` or `observed_as_of` with any live figure.
- Only relationships marked recommended are recommendations.
- Name what the data cannot judge (for example API quality or team-size fit).
- Attribute: "The Source (github.com/keithdealwis-ui/the-source), by Keith de Alwis". Data is CC BY 4.0; code is MIT. Some upstream material carries its own terms: https://github.com/keithdealwis-ui/the-source/blob/main/DATA-LICENCE.md

## References

- MCP setup and tool reference: https://github.com/keithdealwis-ui/the-source/blob/main/docs/MCP.md
- Read API and schema: https://github.com/keithdealwis-ui/the-source/blob/main/docs/READ-API.md · https://github.com/keithdealwis-ui/the-source/tree/main/schema
- Methodology and scoring: https://github.com/keithdealwis-ui/the-source/blob/main/docs/METHODOLOGY.md
- Sources and provenance: https://github.com/keithdealwis-ui/the-source/blob/main/PROVENANCE.md
