[integrations] Enhanced MCP server with alpha tool suite#6
[integrations] Enhanced MCP server with alpha tool suite#6alanshurafa wants to merge 6 commits intomainfrom
Conversation
Deploys as a new remote MCP integration alongside the stock server, expanding the tool surface from 4 to 14 tools with enhanced search (semantic + full-text), CRUD, content dedup, LLM classification, sensitivity detection, and operational monitoring. Schema-backed tools (graph_search, entity_detail, ops_capture_status, ops_source_monitor) gracefully degrade when optional schemas are absent. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7633681f7b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (!response.ok) { | ||
| throw new Error(`OpenRouter embedding failed (${response.status}): ${await response.text()}`); | ||
| } |
There was a problem hiding this comment.
Use OpenAI fallback when OpenRouter embeddings fail
The embedText helper currently throws as soon as OpenRouter returns a non-2xx response, which prevents execution from ever reaching the documented OpenAI fallback branch even when OPENAI_API_KEY is configured. In environments with both providers enabled, any transient OpenRouter failure will hard-fail embedding-dependent tools (search_thoughts semantic mode, capture_thought, update_thought) instead of degrading gracefully to OpenAI.
Useful? React with 👍 / 👎.
| supabase: { from: (name: string) => { select: (cols: string) => { limit: (n: number) => Promise<{ error: unknown }> } } }, | ||
| tableName: string, | ||
| ): Promise<boolean> { | ||
| const { error } = await supabase.from(tableName).select("id").limit(0); |
There was a problem hiding this comment.
Make table existence checks column-agnostic
The schema guard utility claims to test whether a relation exists, but it probes by selecting id, which incorrectly returns false for any valid table/view that does not expose an id column. Because this helper is used to gate optional tools, a deployed schema can be present yet reported unavailable purely due to column shape. The existence check should not assume a specific column name.
Useful? React with 👍 / 👎.
Add blank lines around headings (MD022), fenced code blocks (MD031), and between adjacent blockquotes (MD028). Fix broken link fragment (MD051) and remove extra blank line (MD012). No content changes. These errors were blocking CI on all open PRs since the lint check runs repo-wide. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each section's numbered list now restarts at 1 instead of continuing the global count (3-14), satisfying markdownlint MD029/ol-prefix rule. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
integrations/enhanced-mcp/expanding the tool surface from 4 to 14 toolsgraph_search,entity_detail,ops_capture_status,ops_source_monitor) gracefully degrade when optional schemas (smart-ingest, knowledge-graph) are absentserver/is untouched — this deploys as a second remote connectorDependencies
schemas/enhanced-thoughts(PR [schemas] Enhanced thoughts columns and utility RPCs #1) — adds columns and RPCs used by all core toolsschemas/smart-ingest(PR [schemas] Smart ingest pipeline tables #4) — unlocksops_capture_statustoolschemas/knowledge-graph(PR [schemas] Knowledge graph tables and extraction trigger #5) — unlocksgraph_search,entity_detail,ops_source_monitortoolsFiles
Tool Surface (14 tools)
Test Plan
.github/metadata.schema.json../../docs/01-getting-started.md,../../docs/05-tool-audit.md)Generated with Claude Code