Server definition
- Hash
- sha256:005b8291a2fd94ce618a44960903c621c7f7d159cc2229f3910b00c373f99d60
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "Enhanciar is a knowledge mesh built from your ingested codebases (and, soon, Slack/Linear/Notion). Use these tools to ground your answers in the user's actual code and docs rather than guessing. Prefer `query` for natural-language questions (it does retrieval + synthesis + citations); use `search_wiki` + `get_page` when you need raw page content; use `get_graph` for the community/entity graph view.",
"tools": [
{
"description": "Return the community/knowledge graph manifest for visualisation.\n\nUseful when the calling agent wants the high-level structure of the\nkey's workspace (clusters, hub nodes, cross-references) rather than\nthe contents of any one page. Returns ``{nodes, edges, communities,\nstats}`` — exact shape mirrors the ``/api/wiki/graph`` REST endpoint.\n",
"inputSchema": {
"properties": {},
"title": "get_graphArguments",
"type": "object"
},
"name": "get_graph",
"outputSchema": {
"additionalProperties": true,
"title": "get_graphDictOutput",
"type": "object"
}
},
{
"description": "Fetch a single wiki page from the key's workspace.\n\nArgs:\n category: One of ``entities | concepts | people | decisions |\n sources | flows | infrastructure | tickets``.\n name: Page slug (without ``.md`` extension), as returned by\n ``list_pages`` / ``search_wiki``.\n\nReturns ``{category, name, content}`` — ``content`` is the full\nmarkdown body including YAML frontmatter. Returns ``{error: \"...\"}``\nif the page doesn't exist.\n",
"inputSchema": {
"properties": {
"category": {
"default": "",
"title": "Category"
},
"name": {
"default": "",
"title": "Name"
},
"page": {
"default": "",
"title": "Page"
},
"path": {
"default": "",
"title": "Path"
},
"slug": {
"default": "",
"title": "Slug"
},
"title": {
"default": "",
"title": "Title"
}
},
"title": "get_pageArguments",
"type": "object"
},
"name": "get_page",
"outputSchema": {
"additionalProperties": true,
"title": "get_pageDictOutput",
"type": "object"
}
},
{
"description": "Return the \"living map of how the company works\" for the key's workspace.\n\nA graph of process nodes (compiled skills), the external systems\nthey touch (GitHub, Slack, Jira, …), the wiki docs they were\nderived from, and team groups — with derived_from / uses /\nreferences edges. Use this when the agent wants the high-level\noperational structure rather than one skill's steps.\n",
"inputSchema": {
"properties": {},
"title": "get_process_mapArguments",
"type": "object"
},
"name": "get_process_map",
"outputSchema": {
"additionalProperties": true,
"title": "get_process_mapDictOutput",
"type": "object"
}
},
{
"description": "Fetch one compiled skill by name (slug from ``list_skills``).\n\nReturns ``{name, markdown, meta}`` — ``markdown`` is the full\nagent-executable SKILL.md content (frontmatter + steps), ``meta``\nis the parsed frontmatter. Includes an ``error`` key when the\nskill doesn't exist (with the available names).\n",
"inputSchema": {
"properties": {
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "get_skillArguments",
"type": "object"
},
"name": "get_skill",
"outputSchema": {
"additionalProperties": true,
"title": "get_skillDictOutput",
"type": "object"
}
},
{
"description": "Compute the blast radius of changing ``target`` in the key's workspace.\n\nUse this before editing code to see what a change ripples into:\ndirect callers/callees, every affected file, the affected tests, the\ntransitive dependency set, and example dependency paths with per-path\nfacts (hops, dependents at the endpoint, whether it lands in a test).\n\nThere is deliberately no risk score. There was one — thresholds on the\ntransitive count — and it was a verdict the caller could not check or\nargue with. The counts it was computed from are all here; judge from\nthose.\n\nArgs:\n target: A graph node id, wiki page name, file path\n (``micrograd/engine.py``), or a function fqn (``engine.py::func``).\n depth: How many hops to traverse the call graph (default 2).\n\nReturns the impact dict — ``{target, label, found, direct_callers,\ndirect_callees, affected_files, affected_tests, transitive_nodes,\ntransitive_count, paths, path_facts}``.\n",
"inputSchema": {
"properties": {
"depth": {
"default": 2,
"title": "Depth",
"type": "integer"
},
"target": {
"title": "Target",
"type": "string"
}
},
"required": [
"target"
],
"title": "impactArguments",
"type": "object"
},
"name": "impact",
"outputSchema": {
"additionalProperties": true,
"title": "impactDictOutput",
"type": "object"
}
},
{
"description": "List every wiki page the caller can see in the key's workspace.\n\nReturns a list of ``{category, name, title}`` records — feed each\none to ``get_page`` to fetch the full markdown body. Use this first\nwhen you want a directory view; for a specific question prefer\n``query`` which handles retrieval for you.\n",
"inputSchema": {
"properties": {},
"title": "list_pagesArguments",
"type": "object"
},
"name": "list_pages",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_pagesOutput",
"type": "object"
}
},
{
"description": "List the key's workspace's proposed actions (the approval queue).\n\nRead-only. Optionally filter by ``status`` (proposed / approved /\nexecuting / done / failed / dismissed). Returns ``{id, action_type,\nstatus, source, title, source_doc_id, external_id}`` per proposal.\n\nNOTE: MCP can read and PROPOSE actions but deliberately cannot approve\nor execute them — a human approves every action in the app UI.\n",
"inputSchema": {
"properties": {
"status": {
"default": "",
"title": "Status",
"type": "string"
}
},
"title": "list_proposed_actionsArguments",
"type": "object"
},
"name": "list_proposed_actions",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_proposed_actionsOutput",
"type": "object"
}
},
{
"description": "List the repos ingested into the key's workspace.\n\nReturns ``{full_name, branch, last_ingested_at}`` records. Use this when\nthe agent needs to know what context is available before asking a\nquestion.\n\nReads what ingest actually recorded for this namespace: ``repos.json``\n(the repo→clone map every other read path resolves through) plus the\nper-repo ``_state`` files that carry the branch and the last run's\ntimestamp.\n\nIt used to read a Firestore subcollection ``users/{uid}/repos``, which\nwas wrong twice over. It was keyed by the person rather than the\nworkspace — the bug this module was fixed for — and nothing in the\ncodebase has ever written to that path, so the tool returned an empty\nlist to everyone, forever. Hence ``branch`` rather than the old\n``default_branch``: the state file records the branch that was actually\ningested, and no caller can be depending on a key that never had a row\nunder it.\n",
"inputSchema": {
"properties": {},
"title": "list_reposArguments",
"type": "object"
},
"name": "list_repos",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_reposOutput",
"type": "object"
}
},
{
"description": "List the compiled skills (recurring procedures) in the key's workspace.\n\nSkills are agent-executable SKILL.md pages mined from that workspace's\nwiki by the skills compiler. Returns ``{name, title, description,\nconfidence, last_compiled, sources}`` records — feed a ``name`` to\n``get_skill`` for the full markdown. Empty list = nothing compiled\nyet (the user can run a compile from Enhanciar's UI or API).\n",
"inputSchema": {
"properties": {},
"title": "list_skillsArguments",
"type": "object"
},
"name": "list_skills",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "list_skillsOutput",
"type": "object"
}
},
{
"description": "Propose a new action for human approval (does NOT execute it).\n\n``action_type`` is a registered executor id (e.g. ``jira.create_issue``,\n``linear.create_issue``, ``github.create_issue``). The proposal lands in\nthe key's workspace's approval queue where a person picks the target and\napproves it — approve/execute are intentionally NOT exposed over MCP.\nReturns the created ``{id, action_type, status}`` or an ``error``.\n",
"inputSchema": {
"properties": {
"action_type": {
"title": "Action Type",
"type": "string"
},
"description": {
"default": "",
"title": "Description",
"type": "string"
},
"evidence": {
"default": "",
"title": "Evidence",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
}
},
"required": [
"action_type",
"title"
],
"title": "propose_actionArguments",
"type": "object"
},
"name": "propose_action",
"outputSchema": {
"additionalProperties": true,
"title": "propose_actionDictOutput",
"type": "object"
}
},
{
"description": "Ask Enhanciar a natural-language question grounded in the key's workspace.\n\nThis is the high-level tool — use it for any \"what does X do\",\n\"why did we choose Y\", \"where is Z handled\" question. It runs\nthe full retrieval + synthesis pipeline and returns the answer\nplus citations.\n\nArgs:\n question: Natural-language question.\n model: Optional model id override (``gemini-2.5-flash``,\n ``gpt-4o``, ``claude-sonnet-4-5``, etc.). If omitted the\n saved default is used — the workspace's in a team workspace,\n the caller's own in a personal one.\n\nReturns ``{answer, sources, model}`` — ``sources`` is a list of\n``{category, name, url}`` citations the LLM grounded its answer\nin. Surface them to the human so they can verify. When the workspace\nhas nothing ingested at all you get ``{answer, empty_brain: true}``\nand no sources: that is a statement about the workspace, not a failed\nsearch, so rephrasing the question will not change it.\n",
"inputSchema": {
"properties": {
"model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Model"
},
"question": {
"title": "Question",
"type": "string"
}
},
"required": [
"question"
],
"title": "queryArguments",
"type": "object"
},
"name": "query",
"outputSchema": {
"additionalProperties": true,
"title": "queryDictOutput",
"type": "object"
}
},
{
"description": "Substring search across the wiki pages in the key's workspace.\n\nCheap and deterministic — no embedding required. Returns up to\n``limit`` (default 20, max 50) ``{category, name, title, snippet}``\nhits. The ``snippet`` is a short window around the first match,\nsafe to surface in chat as a citation preview.\n\nFor semantic / natural-language questions prefer ``query``.\n",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"query": {
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "search_wikiArguments",
"type": "object"
},
"name": "search_wiki",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"title": "Result",
"type": "array"
}
},
"required": [
"result"
],
"title": "search_wikiOutput",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:005b8291a2fd94ce618a44960903c621c7f7d159cc2229f3910b00c373f99d60 | sha256sum