feat(agent-toolkit): add get_monday_knowledge tool#429
Open
rami-monday wants to merge 6 commits into
Open
Conversation
Adds a new `get_monday_knowledge` MCP tool that exposes monday.com
knowledge to external agents through a single unified interface.
The tool accepts a `query` and a `kind` enum (`developer_docs` |
`general`), routing to the appropriate backend:
- `general` → internal `knowledge_base_search` GraphQL query
(ai-vector-search / help center, with cited source links)
- `developer_docs` → `ask_developer_docs` GraphQL query (kapa.ai)
Both paths return a normalized `{ answer, sources[], kind }` response.
Using `BaseMondayApiTool` (allGraphqlApiTools) so the tool is loaded
under the default gateway mode and can be added to PUBLIC_MCP_TOOLS.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
RomKadria
reviewed
Jul 20, 2026
| @@ -0,0 +1,15 @@ | |||
| export const knowledgeBaseSearchQuery = ` | |||
Collaborator
There was a problem hiding this comment.
You didnt generate gql, run yarn codegen
RomKadria
reviewed
Jul 20, 2026
Comment on lines
+63
to
+64
|
|
||
| The kind enum is extensible — more domains (e.g. marketplace, release_notes) may be added in future versions.`; |
Collaborator
There was a problem hiding this comment.
Suggested change
| The kind enum is extensible — more domains (e.g. marketplace, release_notes) may be added in future versions.`; |
RomKadria
reviewed
Jul 20, 2026
| private async queryGeneralKnowledge(query: string): Promise<ToolOutputType<never>> { | ||
| const response = await this.mondayApi.request<KnowledgeBaseSearchResponse>(knowledgeBaseSearchQuery, { | ||
| query, | ||
| limit: 5, |
RomKadria
reviewed
Jul 20, 2026
|
|
||
| const result = response.ask_developer_docs; | ||
| if (!result?.answer) { | ||
| throw new Error('No answer found in developer docs. Try rephrasing your question.'); |
Collaborator
There was a problem hiding this comment.
you can on all error flows use this this instead
rethrowWithContext
Collaborator
There was a problem hiding this comment.
or throw new ToolValidationError
RomKadria
reviewed
Jul 20, 2026
| ), | ||
| }; | ||
|
|
||
| interface AskDeveloperDocsResponse { |
Collaborator
There was a problem hiding this comment.
we should create gql for it and use it properly I guess
- Use gql tag for both queries and run codegen to generate typed operations - Move ask_developer_docs query into the tool's own graphql file - Remove hardcoded limit (GraphQL schema default handles it) - Use rethrowWithContext for all error flows - Remove extensibility note from getDescription Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
get_monday_knowledgeMCP tool that exposes monday.com knowledge to external agents through a single unified interfacequery(string) andkindenum (developer_docs|general)kind=generalto the internalknowledge_base_searchGraphQL query (backed by the internal knowledge base) — returns cited source article linkskind=developer_docstoask_developer_docsGraphQL query{ answer, sources[], kind }BaseMondayApiTool(registered inallGraphqlApiTools) so it loads under the default gateway mode — add'get_monday_knowledge'toPUBLIC_MCP_TOOLSinplatform-mcp-gatewayto make it visible externallyWhy
Exposes monday.com knowledge (both product and API/developer) to external agents through a single tool with a consistent response contract. The
kindenum is extensible for future knowledge domains.Test plan
npx jest get-monday-knowledge)npm run build)get_monday_knowledgewithkind=generaland a product questionget_monday_knowledgewithkind=developer_docsand a dev question'get_monday_knowledge'toPUBLIC_MCP_TOOLSinplatform-mcp-gateway(separate PR)🤖 Generated with Claude Code