nice
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nicelist my connections"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nice.
The access layer between your AI agents and everything they touch.
Add an API key or connect an app once, in a web UI. Pair each machine once, with a single command. Every agent you run - Claude Code, custom scripts, any CLI - gets exactly the access you scope to it: injected as env vars, or proxied through the hub so the agent never holds a raw key at all. Every access is audited. Any device can be cut off in one click.
Your keys today: pasted into .env files and MCP configs across every laptop, unrotated, unauditable, unrevocable. This replaces that.
How it works
┌─────────────┐ pair once ┌──────────────┐ scoped, audited ┌──────────────┐
│ nice hub │ ◄──────────────── │ your machine │ ◄──────────────── │ your agents │
│ (self-host) │ │ (nice CLI) │ env or MCP │ claude, ... │
└─────────────┘ └──────────────┘ └──────────────┘
encrypted vault, web UI, device token, nice run -- claude
OAuth refresh, audit log ~/.nice/config nice mcp serveRelated MCP server: Nervora
Quickstart
Requires Node 22+. Zero dependencies - nothing to install.
git clone https://github.com/fainir/nice && cd nice
node server/server.js
# nice hub listening on http://localhost:8787Open http://localhost:8787, create your account, and add a connection (an API key, or OAuth once configured). Secrets are AES-256-GCM encrypted before touching disk; the UI only ever shows the last 4 characters again.
Install the CLI and pair the machine your agents run on (Devices tab → "Pair a device"):
npm install -g . # from the repo; gives you the `nice` command
nice pair <CODE> --server http://localhost:8787Give every agent access:
nice run -- claude # any command, all scoped keys injected as env vars
nice run --only GITHUB_TOKEN -- npx -y @modelcontextprotocol/server-github
eval "$(nice env)" # or load into the current shell
nice status # what this machine can reach
nice unpair # revoke this machine, server-side tooGateway mode - agents never see your keys
nice mcp serveruns an MCP server (stdio) exposing list_connections and http_request. When an agent calls http_request, the hub makes the API call and injects auth server-side - the credential never enters the agent's process. Requests are restricted to each provider's real API origin, client-supplied auth headers are stripped, and every call is audited.
Plug into Claude Code via .mcp.json:
{ "mcpServers": { "nice-hub": { "command": "nice", "args": ["mcp", "serve"] } } }Scoping, audit, revocation
Scope per device: in the Devices tab, limit any paired machine to exactly the connections it should see - enforced for both env injection and the gateway.
Audit everything: every login, key save, pairing, secret read, and proxied call lands in a per-user audit log with the acting device.
Revoke instantly: delete a device in the UI (or
nice unpairfrom the machine) and its access dies immediately.
Connect apps with sign-in (OAuth)
The full authorization-code flow (single-use state, encrypted token storage, automatic refresh) is built in for GitHub, Google, and Slack - and any custom OAuth provider. Register an OAuth app with the provider (callback: <your hub>/oauth/callback), then:
// data/oauth.json
{ "github": { "clientId": "...", "clientSecret": "..." } }A "Connect with sign-in" button lights up on the Connections tab - no restart needed. Tokens refresh automatically whenever an agent uses them.
Deploy
docker build -t nice-hub .
docker run -d -p 8787:8787 -v nice-data:/data --name nice-hub nice-hubThe vault (store + master key) lives in the nice-data volume - back it up. Always put TLS in front (Caddy, nginx, or your platform) for any non-localhost deployment.
Env var | Default | Meaning |
|
| server port |
|
| server data dir (store + master key + oauth.json) |
|
| CLI config dir |
Security model
Self-host trust model: your machine, your keys, your master key. Vault encrypted with AES-256-GCM; passwords scrypt-hashed; tokens stored only as SHA-256 hashes; single-use expiring pairing codes; rate-limited auth; origin-allowlisted proxy. Full details and reporting instructions in SECURITY.md.
FAQ
Why trust this with my keys? You don't have to trust anyone - it's self-hosted, zero-dependency, and small enough to read in an afternoon (~1500 lines). Your keys never leave your infrastructure.
How is this different from 1Password CLI or Doppler? Those inject secrets for humans and CI. Nice is agent-native: per-device pairing and scoping, an audit trail of what each agent read, one-click revocation, OAuth refresh handled for you, and an MCP gateway where agents call APIs without ever holding credentials.
What if the hub is down? nice run fails closed (no stale secrets on disk). Run the hub on the same machine or your LAN for zero-dependency startups.
Is there a hosted version? Not yet. The roadmap includes a zero-knowledge hosted mode - where the server cannot decrypt your vault - after an external audit.
Contributing
PRs welcome - see CONTRIBUTING.md. Security reports: SECURITY.md (please, not public issues).
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceA secure gateway that lets AI agents interact with APIs and SSH servers via scoped tokens, with credential injection, human-in-the-loop for dangerous commands, and MCP integration for tool access.Last updated2115MIT
- Alicense-qualityCmaintenanceA secure MCP gateway for enterprise AI tool execution, enabling governed invocation of business tools with authentication, RBAC, audit logging, PII redaction, and async processing.Last updatedApache 2.0
- AlicenseAqualityCmaintenanceAI gateway to unify authentication and expose internal APIs as MCP tools. Supports SSO, JWT, and basic auth with auto-refresh.Last updated616MIT
- Alicense-qualityCmaintenanceA security-hardened MCP gateway that enables AI agents to call LLM APIs (Gemini, OpenAI, Claude, etc.) using ephemeral proxy tokens, eliminating exposure of real API keys.Last updated406Apache 2.0
Related MCP Connectors
Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fainir/nice'
If you have feedback or need assistance with the MCP directory API, please join our Discord server