# keychain_connect

Store an encrypted platform credential in the UnClick Keychain. Tests the credential against the platform API before saving. Scoped to the caller's UNCLICK_API_KEY.

Agent View of the PolicyLayer registry record for `keychain_connect`. HTML page: https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/keychain-connect

## Facts

- Tool: `keychain_connect`
- Server: UnClick (`@unclick/mcp-server`) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Install: `npx -y @unclick/mcp-server`
- Homepage: https://github.com/malamutemayhem/unclick-agent-native-endpoints.git
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 3 (2 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `label` | string | no | Optional label to distinguish multiple credentials for the same platform (default: 'default'). |
| `platform` | string | yes | Platform ID: github, supabase, vercel, stripe, cloudflare. |
| `credential` | string | yes | API key or token for the platform. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "keychain_connect",
    "arguments": {
      "platform": "<platform>",
      "credential": "<credential>"
    }
  }
}
```

## Why keychain_connect is rated Medium

This tool creates and stores encrypted credentials in a keychain system. While the action itself is reversible (credentials can be updated or removed), the severity is elevated to 'high' because improper use could result in compromised credentials being stored, which could later enable unauthorized access to external platforms.

From the tool's own definition: "Tool description states 'Store an encrypted platform credential in the UnClick Keychain', which is a create/modify operation that persists data. The credential storage is reversible and does not irreversibly delete data or move money."

## Use case

AI agents use keychain_connect to create or update resources in UnClick, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your UnClick environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches UnClick:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "keychain_connect": {
      "limits": [
        {
          "counter": "keychain_connect_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on UnClick (1661)

- `delete_todo` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/delete-todo.md
- `email_delete` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/email-delete.md
- `file_sync_prune` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/file-sync-prune.md
- `pinecone_delete_vectors` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/pinecone-delete-vectors.md
- `telegram_manage_chat` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/telegram-manage-chat.md
- `upstash_redis_del` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/upstash-redis-del.md
- `vault_action` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/vault-action.md
- `vercel_delete_env` — Destructive — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/vercel-delete-env.md
- `ackermann` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/ackermann.md
- `anthropic_create_message` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/anthropic-create-message.md
- `avl_tree` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/avl-tree.md
- `baby_giant_step` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/baby-giant-step.md
- `bellman_ford` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bellman-ford.md
- `bezier_curve` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bezier-curve.md
- `bitmask_ops` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bitmask-ops.md
- `bitwise_calc` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bitwise-calc.md
- `bloom_filter` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bloom-filter.md
- `bluesky_action` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/bluesky-action.md
- `burrows_wheeler` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/burrows-wheeler.md
- `cartesian_tree` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/cartesian-tree.md
- `chromatic_number` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/chromatic-number.md
- `circleci_trigger_pipeline` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/circleci-trigger-pipeline.md
- `cohere_chat` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/cohere-chat.md
- `cohere_classify` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/cohere-classify.md
- `cohere_generate` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/cohere-generate.md
- `commonsensepass_check` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/commonsensepass-check.md
- `complex_calc` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/complex-calc.md
- `compliancepass_run` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/compliancepass-run.md
- `convex_hull_3d` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/convex-hull-3d.md
- `convolution` — Execute — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server/convolution.md
- …and 1631 more: https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-malamutemayhem-unclick-mcp-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-malamutemayhem-unclick-mcp-server
