Agents SDKBLOCK
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
SDK for building, connecting, and using AI agents. Includes the adk CLI for managing agent connections, installing skills for coding agents, and working with MCP servers.
Copy this into your coding agent
Help me install the Agent Development Kit (adk) — a CLI that connects coding agents to remote APIs and MCPs. It also installs skill files so you know how to use them. Run this to install it: curl -fsSL https://registry.slash.com/adk/install.sh | sh Then follow the printed instructions to set up skills and connect to agents.
Quick Start
# Install via curl curl -fsSL https://registry.slash.com/adk/install.sh | sh # Or via npm npm install -g @slashfi/agents-sdk
# Set up skills for your coding agent (Claude Code, Cursor, Copilot, etc.)
adk init
# Connect to an agent from the public registry
adk ref add notion
# Browse available agents
adk registry browse public
# Call a tool
adk ref call notion notion-search '{"query": "hello"}'ADK CLI
The Agent Development Kit CLI. One tool for connecting to agents, managing skills, and the full agent definition lifecycle.
adk --help
Commands Overview
Working with Agents
Setting Up Skills
adk init installs skill files for your coding agents. It auto-detects which agents you have installed and writes skill files in the standard YAML-frontmatter markdown format from agentskills.io.
# Auto-detect and set up all detected agents adk init
f8242792dff8OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add agents-sdk --env ADK_ENCRYPTION_KEY=${ADK_ENCRYPTION_KEY} --env ADK_TOKEN=${ADK_TOKEN} --env API_KEY=${API_KEY} --env ATLAS_TOKEN=${ATLAS_TOKEN} -- npx -y @slashfi/[email protected]{
"mcpServers": {
"agents-sdk": {
"command": "npx",
"args": [
"-y",
"@slashfi/[email protected]"
],
"env": {
"ADK_ENCRYPTION_KEY": "${ADK_ENCRYPTION_KEY}",
"ADK_TOKEN": "${ADK_TOKEN}",
"API_KEY": "${API_KEY}",
"ATLAS_TOKEN": "${ATLAS_TOKEN}"
}
}
}
}Exposed tools (88)
60 read · 19 write · 9 destructive. Blast radius: 9 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
API-get-block | read | Get a block by ID |
Config | destructive | Manage consumer config — add/remove/list agent refs and registries. |
Custom | read | Only this one |
Echo | read | Echoes input back |
Integrations | read | Third-party API integration management with OAuth2 support |
Linear | read | Track issues, manage projects |
Math | read | Does math |
Notes | read | Simple note-taking service |
Notion | read | Notion integration |
RemoteDB | read | Query remote databases |
Secrets | read | Encrypted secret storage and management |
Snowflake | read | Analytics data warehouse queries |
Users | read | User and identity management |
Weather | read | Current weather and forecasts |
add | write | Add two numbers |
add_connection | write | Directly store a connection to a remote registry (no OAuth exchange). Used for reverse registration. |
add_ref | write | Add or update an agent ref in the consumer config. |
add_registry | write | Add or update a registry in the consumer config. |
adk | read | When connecting to APIs, calling remote tools, managing integrations, or the user asks about adk |
api | read | Raw Notion API call |
api_key | write | Create or list API keys for MCP access. |
calculate | read | Perform basic arithmetic |
call_integration | read | Call a configured integration API. Supports REST, GraphQL, and agent-registry types. |
collect_secrets | read | Collect secrets and missing fields for a tool via a secure form. |
connect_integration | read | Generate an OAuth authorization URL for a user to connect an integration. |
create_client | write | Create a new client with specific scopes (admin only) |
create_event | write | Create a new event with title, start, and end. |
create_note | write | Create a new note |
create_page | write | Create a new page in a database |
create_tenant | write | Create a new tenant (organizational unit). All clients and resources are scoped to a tenant. |
create_user | write | Create a new user. |
delete_note | destructive | Delete a note by ID |
discover_integrations | write | Discover available integration types that can be set up. |
echo | read | Echo back a message |
exchange_token | read | Exchange a foreign JWT for a local identity. Verifies the JWT via JWKS, |
get | read | Get a secret |
get_data | read | Returns 401 on first call, succeeds on retry |
get_forecast | read | Get a 3-day forecast for a city |
get_integration | read | Get a specific integration provider config. |
get_note | read | Get a note by ID |
get_profile | read | Requires HTTP Basic token |
get_user | read | Get a user by ID. |
get_weather | read | Get current weather for a city |
google-calendar | read | View and manage Google Calendar events, calendars, and availability. |
greet | read | Greet a user by name |
handle_oauth_callback | read | Handle an OAuth callback. Exchanges the authorization code for tokens and stores the connection. |
link_identity | read | Link an external identity (OAuth provider) to a user. |
list_agents | read | List all registered agents and their available tools. Optionally search/filter by query using BM25 ranking. |
list_clients | read | List all registered clients (admin only) |
list_connections | read | List all connected remote registries. |
list_events | read | List events in a calendar within a time window. Supports calendar ID and timezone filters. |
list_identities | read | List all linked identities for a user. |
list_integrations | read | List configured integration providers and user |
list_issues | read | List issues |
list_notes | read | List all notes |
list_refs | read | List all agent refs in the consumer config. |
list_users | read | List users in a tenant. |
noop | read | Unused in this test |
notion | write | Interact with the Notion API — search, create, update pages and databases. |
notion-fetch | read | Fetch a Notion page by ID and return blocks. |
notion-search | read | Search Notion pages and databases by query string. |
proxy_call | read | Proxy an MCP call to a connected remote registry. |
query | write | Execute SQL |
ref | destructive | Manage agent refs. Operations: add, remove, list, update, inspect, call, auth, auth-status, refresh-token, resources, read. For |
register | read | Register a new agent client (self-service) |
registry | destructive | Manage registry connections. Operations: add, remove, list, update, browse, inspect, test. |
remove_ref | destructive | Remove an agent ref from the consumer config by name. |
resolve_identity | read | Find a user by their external provider identity. |
revoke | destructive | Delete a stored secret. |
revoke_client | destructive | Revoke a client and all its tokens (admin only) |
rotate_keys | read | Generate a new ES256 signing key and deprecate the current active key. The old key remains valid for verification during the overlap period. |
rotate_secret | read | Rotate a client |
run_query | write | Run an analytics query on Snowflake |
search | read | Search |
search_pages | read | Search Notion pages |
setup_integration | write | Create or update an integration provider config. |
some_tool | read | Never invoked via the registry in this test |
store | read | Store secret values. Returns secret:<id> refs for each value. |
test | read | Test desc |
time | read | Get the current time in a specified timezone. |
timer | write | Schedule a one-shot reminder that fires at a specified time. |
token | read | Exchange client credentials for an access token (OAuth2 client_credentials grant) |
tool1 | read | A tool |
trust_issuer | destructive | Add or remove a trusted issuer URL. JWTs from trusted issuers are verified against their JWKS endpoint. |
unlink_identity | destructive | Remove a linked identity from a user. |
update_integration | write | Update a ${h.displayName} instance. |
update_user | write | Update a user |
whoami | read | Introspect the current authentication context |
Trust audit
BLOCKgrade F · trust 53/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (7 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (23)
import("node:child_process").then(({ exec }) => exec(`${opener} "${url}"`)).catch(() => {});import("node:child_process").then(({ exec }) => exec(`${opener} "${url}"`)).catch(() => {});Exchange client credentials for an access token (OAuth2 client_credentials grant)
console.log(`\n Run: adk registry auth ${displayName} --token <token>`);console.log(` token: ${config.token_endpoint}`);token: "refreshed-direct-token",
const API_KEY = "test-secret-key-12345";
Config, delete_note, ref, registry, remove_ref, revoke, revoke_client, trust_issuer, unlink_identity
url: "http://127.0.0.1:33469",
url: "http://127.0.0.1:33469",
url: "http://127.0.0.1:33469",
url: "http://127.0.0.1:33469",
const parsed = JSON.parse(atob(input.state));
stateContext = JSON.parse(atob(params.state));
const combined = Uint8Array.from(atob(encrypted), (c) => c.charCodeAt(0));
const binary = atob(padded);
const unverified = JSON.parse(atob(payloadB64)) as { iss?: string };hono, @types/bun, typescript
cross-spawn, jose, zod, zod-to-json-schema, @biomejs/biome, @types/bun, @types/cross-spawn, postgres
Proxies let you forward `adk` operations to a remote server. This is useful when you want a central server to manage refs and registries on behalf of multiple users (e.g., a team server that holds sha
curl -X POST http://localhost:3000/oauth/token \
curl -fsSL https://registry.slash.com/adk/install.sh | sh
curl -fsSL https://registry.slash.com/adk/install.sh | sh
Gates applied: no_behavioural_pass.
f8242792dff8full audit observations/trust-audit/mcp-server/slashfi__agents-sdk.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | f8242792dff8 | BLOCK | F | 53 | first audit |
Questions
What tools does @slashfi/agents-sdk expose?
88 in total: 60 read-only, 19 that write, and 9 that can delete or overwrite (Config, delete_note, ref, registry, remove_ref). Every one is listed on this page with its risk.
Is @slashfi/agents-sdk safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (53/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 9 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does @slashfi/agents-sdk need?
It reads ADK_ENCRYPTION_KEY, ADK_TOKEN, API_KEY, ATLAS_TOKEN, LINEAR_API_KEY, ROOT_KEY and TEST_SECRET_VALUE from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How current is this page?
The grade is for one exact copy of the source (f8242792dff8), read on 2026-10-12. The repository is watched and re-audited when it changes.