Skip to content

feat(mcp): add Keenable Search preset - #69

Merged
AgentiLoop merged 2 commits into
AgentiLoop:mainfrom
keenableai:feat/keenable-mcp-preset
Oct 21, 2026
Merged

AgentiLoop merged 2 commits into
AgentiLoop:mainfrom
keenableai:feat/keenable-mcp-preset

Conversation

@ilya-bogin-keenable

Copy link
Copy Markdown
Contributor

What

Adds a Keenable Search preset to the MCP server presets menu, pointing at https://api.keenable.ai/mcp.

Why

It gives the agent web search (search_web_pages) and page fetch as clean markdown (fetch_page_content) from one menu entry. The server needs no account or API key, like the Parallel Search and Cohesivity presets. It is opt-in: nothing changes unless a user picks it, and the built-in search providers and other presets are untouched.

How

One entry appended to MCPPresets.all in Agent/MCP/MCPPresets.swift, using the existing HTTP MCPServerConfig. It sets one header, X-Keenable-Title: Agent!, which only tells the server which app is calling. What reaches Keenable is the queries and URLs the agent passes to these two tools, plus that header. Keyless use is capped at 1000 requests per hour per IP; a user who wants more can add an X-API-Key header in the server sheet.

Tested against the live server with a small Swift package that compiles this MCPPresets.swift and MCPConfig.swift with AgentMCP 1.6.10 (the pinned revision) and connects the way MCPService.connect(to:) does: initialize plus tools/list took about 1.0 s and returned both tools, search_web_pages returned 5 results in about 370 ms, and fetch_page_content returned the page in about 500 ms. swiftc -parse and swiftc -typecheck pass on the two files with Swift 6.3.3. I did not run a full Xcode build or try the preset in the app, because this machine has only the Command Line Tools.

Checklist

  • I have signed (or will sign, when the bot asks) the Contributor License Agreement
  • One concern per PR (see CONTRIBUTING.md)
  • Builds cleanly (./build.sh or Xcode) with no new warnings: not built, see above
  • AgentTests pass (and new tests added where it makes sense): not run
  • Matches existing style (Swift 6.2, @Observable view models, async/await)
  • Docs / README updated if behavior or setup changed: no setup change
  • No API keys, tokens, or personal paths in the diff

Disclosure: I work at Keenable, which operates this MCP endpoint.

@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA ✅
Posted by the CLA Assistant Lite bot.

@ilya-bogin-keenable

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

AgentiLoop added a commit that referenced this pull request Oct 20, 2026
@AgentiLoop
AgentiLoop merged commit e962ca9 into AgentiLoop:main Oct 21, 2026
1 of 2 checks passed
@AgentiLoop

AgentiLoop commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

@ilya-bogin-keenable Your PR has been accepted and merged. It will be in the next weekend pre-release and November's full release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants