UnClick MCP Server
# 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
Scored across 1689 tools
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.
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.
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.
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.