nc://keenable

v0.1.0Pinned
ThomSharktools/nodecode-keenable: Keenable web search and page fetch as two model tools: search by site and date, or read one page. - a rewrite of keenableai/keenable-hermes-plugin (MIT), credited to keenableai1a2c6bd· 9 Nov1 commit
test2 filescell.lisp4.9 KBrpc.lisp8.5 KBtools.lisp7.2 KB

nodecode-keenable

Keenable: web search and page fetch through Keenable's hosted MCP server, as two model tools. A Nodecode rewrite of keenableai/keenable-hermes-plugin by keenableai.

Get it

Tell the agent "add the keenable cell", or run nodecode add nc://keenable.

Set it up

Nothing is required: the server answers with no key and no account. An optional Keenable API key, from app.keenable.ai/console, lifts the shared pool's hourly cap.

{ "keenable": { "max_results": 10, "timeout_seconds": 30 } }
Member Default Notes
endpoint https://api.keenable.ai/mcp Keenable's MCP endpoint
api_key empty a Keenable API key, written here
api_key_env KEENABLE_API_KEY the variable read when api_key is empty
max_results 10 what a call that names no count asks for, 1 to 50
timeout_seconds 30 seconds one call may take

Without a key the server answers from a shared public pool: at most 1,000 requests an hour and 10 a second per address. With a key the hourly cap goes away.

Use it

Ask for anything current, or paste a url and ask what it says. The model calls keenable_search and gets pages back — title, url, a date when the server knows one, and snippets — or keenable_fetch to read one page as markdown, or only the part a prompt asks for.

From eval, the same calls:

(keenable:search "official changelog for FastAPI 0.120")
(keenable:search "model release announcements" :site "huggingface.co"
                 :published-after "2026-10-01" :max-results 5)
(keenable:fetch "https://docs.keenable.ai/rate-limits"
                 :prompt "What are the unauthenticated rate limits?")

keenable_search takes query (describe the page you want, not keywords), site, published_after and published_before (YYYY-MM-DD), max_results, snippet_max_length and mode (pro, the default, or realtime). keenable_fetch takes url, prompt (at most 2000 characters, answered server-side) and max_chars. (help :keenable) answers the same guidance the model reads; *primer* is the text, so a layer can reword it.

Fetched pages are data, not instructions. A refusal reads ERROR: KEENABLE-ERROR: <detail>.

Add nc://keenable

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 1a2c6bd.

    $ nodecode add nc://keenable

    Or tell the agent add the keenable cell.