MCP server exposing Kompany's autonomous business operating system tools for agent integration
Kompany provides 16 tools with mostly complete schemas and descriptions. Naming follows verb_noun conventions (browser_navigate, file_patch, web_search). Descriptions average ~80-120 chars, meeting the 10-1024 char baseline. However, several tools lack parameter descriptions (browser_find has 'selector' and 'text' but no guidance on mutual exclusivity or precedence), and output schemas are not documented. Error handling is minimal, no recovery guidance or categorization. The server is STDIO-only, which caps protocol readiness at 50 regardless of definition quality. Tool composition is reasonable (separate read/write operations), but some tools conflate concerns (browser_find accepts both CSS selector AND text search without clear precedence rules).
Click an element on the page by CSS selector
Find elements on the page by CSS selector or text content
Navigate to a URL in the browser and wait for page load
Read the text content of the current browser page
Take a screenshot of the current browser page
Type text into a form field on the page
Surgically edit a workspace file: replace a UNIQUE, whitespace-exact old_content block with new_content. Prefer this over write_file for targeted edits.
browser_find accepts both 'selector' and 'text' parameters with no documented precedence or mutual exclusivity. LLMs may pass both, causing ambiguous behavior.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. E.g., what fields does web_search return? What does browser_read return?
Error handling is absent. No recovery guidance, categorization (retryable vs fatal), or actionable error messages. E.g., if web_search fails due to unconfigured provider, the tool returns 'a clear notice' but no guidance on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
List entries in a workspace directory (default '.')
Read a workspace file's contents (relative path)
Search your own memory (learned skills + prior learnings) by keywords before doing work — reuse what you solved before. Read-only.
Save a durable note to your local memory (a fact, preference, or pitfall worth keeping). Local only — not an external action.
Run a command string in the workspace (no shell interpolation; 120s timeout; output truncated)
Crystallize a reusable skill: a named SOP (markdown steps) with trigger words so a later similar task reuses it. Local memory only.
Fetch a URL over HTTP GET and return its text (HTML stripped, length-capped). Read-only, no API key needed.
Search the web for a query and return ranked results (title/url/snippet). Requires a configured search provider; returns a clear notice when unconfigured.
Create or overwrite a workspace file with full new content (parent dirs created automatically)
run_shell accepts arbitrary command strings with no input validation, sanitization, or injection guards. LLMs can be tricked into passing shell metacharacters or path traversal payloads.
browser_click and browser_type both accept 'target' and 'selector' parameters (redundant aliases). This violates single-responsibility and forces LLMs to choose between equivalent options.