Skip to main content
Glama
README.md
# UnClick MCP server

**The app store for AI agents.** [unclick.world](https://unclick.world)

450+ callable endpoints across 178+ tools, available to any MCP-compatible AI client. New tools ship to the API continuously. Your agent picks them up automatically; no package update is needed.
<!-- Update counts from src/config/site-stats.ts -->

## Install

**Using the latest GitHub release (no npm account required):**
```json
{
  "mcpServers": {
    "unclick": {
      "command": "npx",
      "args": ["-y", "https://github.com/malamutemayhem/unclick/releases/latest/download/unclick.tgz"]
    }
  }
}
```

Add this to your `claude_desktop_config.json` (or equivalent for Cursor, Windsurf, etc).

**Or install globally from GitHub:**
```bash
npm install -g https://github.com/malamutemayhem/unclick/releases/latest/download/unclick.tgz
```

## Operational Notes

This repo follows the AGENTS.md fence rules for agent work.

## Run

For local web development:

```bash
npm run dev
```

For the API workspace:

```bash
npm run dev:api
```

## Test

Run the main test suite:

```bash
npm test
```

Run the production build check:

```bash
npm run build
```

## License

UnClick uses a split license. The platform (website, API, and hosted backend
and memory services) is **AGPL-3.0** (see [LICENSE](./LICENSE)). The npm client
package `@unclick/mcp-server` stays **MIT**, and the standalone connector
packages stay **Apache-2.0**. Full breakdown and reasoning in
[LICENSING.md](./LICENSING.md).

## What it does

Gives your agent access to a growing catalog of tools across developer utilities, social media, e-commerce, finance, messaging, media, security, and more. You don't need to install separate packages for each integration. One server provides access to everything in the catalog.

## Tool Surface

UnClick exposes a small direct surface for daily agent workflows, plus hidden internal discovery tools for the full catalog.

| Tool group | Tools |
|------------|-------|
| Memory session protocol | `load_memory`, `save_fact`, `search_memory`, `save_identity`, `save_session` |
| Signals and Boardroom coordination | `check_signals`, `read_messages`, `post_message`, `create_todo`, `list_todos`, `update_todo`, `complete_todo`, `create_idea`, `list_ideas`, `vote_on_idea`, `promote_idea_to_todo` |
| Hidden internal catalog tools | `unclick_search`, `unclick_browse`, `unclick_tool_info`, `unclick_call` |

The agent starts with memory, uses direct Boardroom tools for coordination, and can still call the hidden catalog tools by name when it needs dynamic endpoint discovery.

### Compatibility and advanced memory operations

- Legacy memory names still work as aliases: `get_startup_context` -> `load_memory`, `write_session_summary` -> `save_session`, `add_fact` -> `save_fact`, `set_business_context` -> `save_identity`.
- The remaining memory operations are intentionally not listed in `ListTools` and are called through `unclick_call` with `endpoint_id: "memory.<op>"` (for example `memory.manage_decay`, `memory.store_code`, `memory.log_conversation`, `memory.supersede_fact`, `memory.upsert_library_doc`).

## Requirements

- Node.js 18+
- An API key from [unclick.world](https://unclick.world)

Set your key as an environment variable:
```bash
UNCLICK_API_KEY=your_key_here
```

Or pass it via the MCP config:
```json
{
  "mcpServers": {
    "unclick": {
      "command": "npx",
      "args": ["-y", "https://github.com/malamutemayhem/unclick/releases/latest/download/unclick.tgz"],
      "env": {
        "UNCLICK_API_KEY": "your_key_here"
      }
    }
  }
}
```

## More

Full catalog, docs, and API keys at [unclick.world](https://unclick.world).

TDQS

C2.3/5.0

Scored across 1689 tools

Disambiguation1/5

The set contains hundreds of near-duplicate tools across competing providers: crypto prices via CoinGecko, Coinlore, CoinCap, CoinMarketCap, Coinpaprika, plus repeated utility pairs like convert_temperature/temperature_convert, base_convert/number_base_convert, gcd_calculate/gcd_lcm_calc, cat_fact/cat_facts, cat_breeds/cat_api_breeds, json_format/json_prettify, statistics_calc/descriptive_stats, text_readability/readability_score. Categories like weather, quotes, jokes, IP geolocation, and exchange rates each have 3-6 overlapping tools an agent cannot reliably choose between. At 1689 tools, an agent has no realistic path to picking the right one.

Naming Consistency2/5

Many tools follow a provider_prefix_verb convention (tmdb_search_movies, jira_get_issue), but the naming is broadly inconsistent: verb-first without provider (list_calendly_events, get_steam_app_details, create_monday_item), noun-only (is_even, do_account, heartbeat_protocol), and opaque catch-all multiplexers with action parameters (slack_action, notion_action, mastodon_action). Fetch verb varies between get/read/fetch/lookup for identical operations.

Tool Count1/5

1689 tools is an extreme mismatch for any coherent server purpose; even a large aggregator should namespace into separate servers. The count reflects unbounded accretion of integrations rather than a scoped surface, and a large fraction of the tools duplicate each other's function.

Completeness3/5

Coverage is extraordinarily broad—read paths exist for most public APIs and many SaaS platforms—so few obvious holes remain at the resource-coverage level. However, write/mutation coverage is thin and uneven (many integrations are list/get only: Stripe invoices, Xero, Klaviyo, Brickset), and there are dead ends like the retired fishwatch_species tools and legacy UXPass/FlowPass runners, so lifecycle completeness is inconsistent per domain.

Maintenance

ActivitySlowing
ResponsivenessNo recent community issues