Credential isolation for AI agents: placeholder secrets, policy checks, optional human approval.
One address for any MCP client. You sign in at mcp.tap.human.tech once, after adding it.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Tap |
From the sign-in at mcp.tap.human.tech, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
Credential isolation, approval gating, and connector routing for AI agents.
This repository contains the code that is most useful for:
Warning
Self-hosting means you own the security of your credentials and signing keys. TAP keeps secrets out of your agents, but running it yourself puts the host hardening, key isolation, and correct policy-engine operation on you. It's a path for teams that are well versed in security. For everyone else the hosted version is strongly recommended: credentials sit in a hardware enclave we can't read into, with no ops to run. Start free at tap.human.tech.
crates/tap-proxy/src/routing.rs — how TAP resolves connector target shapescrates/tap-proxy/src/placeholder.rs — credential substitution and position validationcrates/tap-proxy/src/policy.rs — approval policy enforcementdocs/ — full documentation including self-hosting guidetap-mcp)The enclave key-management source is included (key_provider_enclave.rs,
kms_azure.rs, skr.rs) — it's the custody model documented at
docs.tap.human.tech/security, and each
hosted release's enclave measurement is published in measurements/.
Hosted deployment and operational infrastructure are maintained separately from this repository.
See SECURITY.md to report a vulnerability.
Apache-2.0: free to use, read, modify, and self-host. This repo is the
open-source TAP runtime (tap-core, tap-proxy, tap-bot, tap-cli, tap-mcp). The
hosted dashboard and managed-service deployment glue are proprietary and live in
a separate private repo.
See CONTRIBUTING.md.
# Needs Postgres (default postgres://tap:tap@localhost:5434/tap, override with
# POSTGRES_DATABASE_URL). Isolated suites parallelize; env-mutating unit tests stay serial.
cargo test -p tap-core
cargo test -p tap-proxy --test integration --test e2e
cargo test -p tap-proxy -p tap-bot -p tap-cli --lib --bins -- --test-threads=1