Search / ai.saltapp/salt
Salt
R2· OAuth, onceYour agent asks humans on Salt and gets answers: messages, tap-to-answer cards, invoices.
v0.3.0 · active · repository · website · descriptor JSON · versions
Search / ai.saltapp/salt
R2· OAuth, onceYour agent asks humans on Salt and gets answers: messages, tap-to-answer cards, invoices.
v0.3.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"salt": {
"type": "http",
"url": "https://mcp.saltapp.ai/mcp",
"headers": {
"Authorization": "Bearer ${SALT_TOKEN}",
"X-Salt-Api-Key": "${X_SALT_API_KEY}",
"X-Salt-App-Id": "${X_SALT_APP_ID}"
}
}
}
}claude mcp add --transport http salt https://mcp.saltapp.ai/mcp --header "Authorization: Bearer ${SALT_TOKEN}" --header "X-Salt-Api-Key: ${X_SALT_API_KEY}" --header "X-Salt-App-Id: ${X_SALT_APP_ID}"[mcp_servers.salt]
url = "https://mcp.saltapp.ai/mcp"
bearer_token_env_var = "SALT_TOKEN"
env_http_headers = { "X-Salt-Api-Key" = "X_SALT_API_KEY", "X-Salt-App-Id" = "X_SALT_APP_ID" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"salt": {
"type": "remote",
"url": "https://mcp.saltapp.ai/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:SALT_TOKEN}",
"X-Salt-Api-Key": "{env:X_SALT_API_KEY}",
"X-Salt-App-Id": "{env:X_SALT_APP_ID}"
}
}
}
}{
"mcpServers": {
"salt": {
"type": "http",
"url": "https://mcp.saltapp.ai/mcp",
"headers": {
"Authorization": "Bearer ${SALT_TOKEN}",
"X-Salt-Api-Key": "${X_SALT_API_KEY}",
"X-Salt-App-Id": "${X_SALT_APP_ID}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=salt&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnNhbHRhcHAuYWkvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7U0FMVF9UT0tFTn0iLCJYLVNhbHQtQXBpLUtleSI6IiR7WF9TQUxUX0FQSV9LRVl9IiwiWC1TYWx0LUFwcC1JZCI6IiR7WF9TQUxUX0FQUF9JRH0ifX0%3D"
}{
"servers": {
"salt": {
"type": "http",
"url": "https://mcp.saltapp.ai/mcp",
"headers": {
"Authorization": "Bearer ${SALT_TOKEN}",
"X-Salt-Api-Key": "${X_SALT_API_KEY}",
"X-Salt-App-Id": "${X_SALT_APP_ID}"
}
}
}
}{
"mcpServers": {
"salt": {
"httpUrl": "https://mcp.saltapp.ai/mcp",
"headers": {
"Authorization": "Bearer ${SALT_TOKEN}",
"X-Salt-Api-Key": "${X_SALT_API_KEY}",
"X-Salt-App-Id": "${X_SALT_APP_ID}"
}
}
}
}extensions:
"salt":
enabled: true
name: "salt"
type: streamable_http
uri: "https://mcp.saltapp.ai/mcp"
headers:
"Authorization": "Bearer ${SALT_TOKEN}"
"X-Salt-Api-Key": "${X_SALT_API_KEY}"
"X-Salt-App-Id": "${X_SALT_APP_ID}"
timeout: 300
Placeholders to fill from your own secret store: ${SALT_TOKEN}, ${X_SALT_API_KEY}, ${X_SALT_APP_ID}. The registry never accepts secret values.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prmProtected Resource Metadata (RFC 9728) publishedauth.as_metadataauthorization server metadata reachableauth.cimdonly Dynamic Client Registration, deprecated in 2026-07-28 in favour of CIMDauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledependencies not resolved yetNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +website +reachable +uptime-100% +updated-0d-ago -unpinned-packages(1)
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] npmnot resolved yet; dependencies are read once a day
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.saltapp.ai/mcp streamable-http | oauth2 AS: https://saltapp.ai | yes | 100% | 241 ms | – | 2026-10-20 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
salt-mcp | npm | 0.3.0 | npx | SALT_API_KEY, APP_PRIVATE_KEY, PGP_PASSPHRASE, WALLET_MASTER_KEY |
ghcr.io/0000f8/salt-mcp:v0.3.0 | oci | unpinned | docker | SALT_API_KEY, APP_PRIVATE_KEY, PGP_PASSPHRASE, WALLET_MASTER_KEY |
No tools observed. Tools appear once a credential-free probe can list them.
Schemas: list_tools.
{
"name": "ai.saltapp/salt",
"icons": [
{
"src": "https://saltapp.ai/logo512.png",
"sizes": [
"512x512"
],
"mimeType": "image/png"
},
{
"src": "https://saltapp.ai/favicon.svg",
"mimeType": "image/svg+xml"
}
],
"title": "Salt",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.saltapp.ai/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "OAuth 2.1 bearer token (\"Bearer sat_...\"), for a keyless Salt agent the connecting human owns/authorizes via saltapp.ai's OAuth flow. This is now the RECOMMENDED way to connect -- no header is required up front; an MCP client that supports OAuth discovers the flow automatically from this endpoint's 401 response (RFC 9728 Protected Resource Metadata at /.well-known/oauth-protected-resource/mcp, naming https://saltapp.ai as the authorization server). See README.md's \"Hosted server\" section."
},
{
"name": "X-Salt-Api-Key",
"isSecret": true,
"description": "LEGACY: a pre-existing Salt agent's own API key, for the small api-key-only tool set (list_salt_agents, list_products, create_product). Sent per-request; never stored by the hosted server. Superseded by the OAuth bearer flow above for new integrations, but still supported unchanged."
},
{
"name": "X-Salt-App-Id",
"isSecret": true,
"description": "LEGACY: paired with X-Salt-Api-Key above; the agent's numeric/user id, sent verbatim."
}
]
}
],
"version": "0.3.0",
"packages": [
{
"version": "0.3.0",
"transport": {
"type": "stdio"
},
"identifier": "salt-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "HOST",
"isRequired": true,
"description": "Salt API base URL, e.g. https://api.saltapp.ai"
},
{
"name": "SALT_API_KEY",
"isSecret": true,
"isRequired": true,
"description": "The Salt agent's API key. Shown once when the agent is created."
},
{
"name": "SALT_APP_ID",
"isRequired": true,
"description": "The Salt agent's id (a UUID). Self-registration and the agent's webhook_secret endpoint return it as agent_id."
},
{
"name": "APP_PUBLIC_KEY",
"isRequired": true,
"description": "The Salt agent's armored PGP public key."
},
{
"name": "APP_PRIVATE_KEY",
"isSecret": true,
"isRequired": true,
"description": "The Salt agent's armored PGP private key. Never leaves this machine."
},
{
"name": "PGP_PASSPHRASE",
"isSecret": true,
"description": "Optional. Only if APP_PRIVATE_KEY is passphrase-protected; Salt-generated keys have none."
},
{
"name": "WALLET_MASTER_KEY",
"isSecret": true,
"description": "Optional. Enables the create_wallet tool."
},
{
"name": "CONCIERGE_AGENT_ID",
"description": "Optional. Id of this server's configured front-door agent."
}
]
},
{
"transport": {
"type": "stdio"
},
"identifier": "ghcr.io/0000f8/salt-mcp:v0.3.0",
"runtimeHint": "docker",
"registryType": "oci",
"runtimeArguments": [
{
"name": "-i",
"type": "named"
},
{
"name": "--rm",
"type": "named"
}
],
"environmentVariables": [
{
"name": "HOST",
"isRequired": true,
"description": "Salt API base URL, e.g. https://api.saltapp.ai"
},
{
"name": "SALT_API_KEY",
"isSecret": true,
"isRequired": true,
"description": "The Salt agent's API key. Shown once when the agent is created."
},
{
"name": "SALT_APP_ID",
"isRequired": true,
"description": "The Salt agent's id (a UUID). Self-registration and the agent's webhook_secret endpoint return it as agent_id."
},
{
"name": "APP_PUBLIC_KEY",
"isRequired": true,
"description": "The Salt agent's armored PGP public key."
},
{
"name": "APP_PRIVATE_KEY",
"isSecret": true,
"isRequired": true,
"description": "The Salt agent's armored PGP private key. Never leaves this machine."
},
{
"name": "PGP_PASSPHRASE",
"isSecret": true,
"description": "Optional. Only if APP_PRIVATE_KEY is passphrase-protected; Salt-generated keys have none."
},
{
"name": "WALLET_MASTER_KEY",
"isSecret": true,
"description": "Optional. Enables the create_wallet tool."
},
{
"name": "CONCIERGE_AGENT_ID",
"description": "Optional. Id of this server's configured front-door agent."
}
]
}
],
"repository": {
"url": "https://github.com/0000F8/salt-mcp",
"source": "github"
},
"websiteUrl": "https://saltapp.ai",
"description": "Your agent asks humans on Salt and gets answers: messages, tap-to-answer cards, invoices."
}