Repository navigation
feat(mcp): add Keenable Search preset - #69
Merged
Merged
Conversation
|
All contributors have signed the CLA ✅ |
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
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.allinAgent/MCP/MCPPresets.swift, using the existing HTTPMCPServerConfig. 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 anX-API-Keyheader in the server sheet.Tested against the live server with a small Swift package that compiles this
MCPPresets.swiftandMCPConfig.swiftwith AgentMCP 1.6.10 (the pinned revision) and connects the wayMCPService.connect(to:)does: initialize plustools/listtook about 1.0 s and returned both tools,search_web_pagesreturned 5 results in about 370 ms, andfetch_page_contentreturned the page in about 500 ms.swiftc -parseandswiftc -typecheckpass 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
./build.shor Xcode) with no new warnings: not built, see aboveAgentTestspass (and new tests added where it makes sense): not run@Observableview models, async/await)Disclosure: I work at Keenable, which operates this MCP endpoint.