protogrid

Search / in.enhanciar/enhanciar

Enhanciar — company brain

R1· needs a key

Ask your company's Slack, Gmail, Drive, Notion, Jira and code from any MCP client, with sources.

v1.0.4 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds ENHANCIAR_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality81good
Trust83of 100
Uptime, 30 days100%
Latency p50544 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "enhanciar": {
      "type": "http",
      "url": "https://enhanciar.in/enhanciar/mcp/",
      "headers": {
        "Authorization": "Bearer ${ENHANCIAR_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http enhanciar https://enhanciar.in/enhanciar/mcp/ --header "Authorization: Bearer ${ENHANCIAR_TOKEN}"
[mcp_servers.enhanciar]
url = "https://enhanciar.in/enhanciar/mcp/"
bearer_token_env_var = "ENHANCIAR_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "enhanciar": {
      "type": "remote",
      "url": "https://enhanciar.in/enhanciar/mcp/",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:ENHANCIAR_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "enhanciar": {
      "type": "http",
      "url": "https://enhanciar.in/enhanciar/mcp/",
      "headers": {
        "Authorization": "Bearer ${ENHANCIAR_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=enhanciar&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZW5oYW5jaWFyLmluL2VuaGFuY2lhci9tY3AvIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7RU5IQU5DSUFSX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "enhanciar": {
      "type": "http",
      "url": "https://enhanciar.in/enhanciar/mcp/",
      "headers": {
        "Authorization": "Bearer ${ENHANCIAR_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "enhanciar": {
      "httpUrl": "https://enhanciar.in/enhanciar/mcp/",
      "headers": {
        "Authorization": "Bearer ${ENHANCIAR_TOKEN}"
      }
    }
  }
}
extensions:
  "enhanciar":
    enabled: true
    name: "enhanciar"
    type: streamable_http
    uri: "https://enhanciar.in/enhanciar/mcp/"
    headers:
      "Authorization": "Bearer ${ENHANCIAR_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${ENHANCIAR_TOKEN}. The registry never accepts secret values.

Quality 81 / 100good

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: impact (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_graph (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_pages (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,028 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

12 tools, about 2,028 tokens to load them all · tool set 2234b098e44d · tools last changed 2026-09-30 · checked 2026-10-20 23:59 UTC

Tool changes

  • get_pagechangedinput schema

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-3d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://enhanciar.in/enhanciar/mcp/ streamable-httpapi_key ${ENHANCIAR_TOKEN}yes100%544 ms–2026-10-20

Tools (12)

get_graphReturn the community/knowledge graph manifest for visualisation. Useful when the calling agent wants the high-level structure of the key's workspace (clusters, hub nodes, cross-references) rather than the contents of any one page. Returns ``{nodes, edges, communities, stats}`` — exact shape mirrors the ``/api/wiki/graph`` REST endpoint.
get_pageFetch a single wiki page from the key's workspace. Args: category: One of ``entities | concepts | people | decisions | sources | flows | infrastructure | tickets``. name: Page slug (without ``.md`` extension), as returned by ``list_pages`` / ``search_wiki``. Returns ``{category, name, content}`` — ``content`` is the full markdown body including YAML frontmatter. Returns ``{error: "..."}`` if the page doesn't exist.
get_process_mapReturn the "living map of how the company works" for the key's workspace. A graph of process nodes (compiled skills), the external systems they touch (GitHub, Slack, Jira, …), the wiki docs they were derived from, and team groups — with derived_from / uses / references edges. Use this when the agent wants the high-level operational structure rather than one skill's steps.
get_skillFetch one compiled skill by name (slug from ``list_skills``). Returns ``{name, markdown, meta}`` — ``markdown`` is the full agent-executable SKILL.md content (frontmatter + steps), ``meta`` is the parsed frontmatter. Includes an ``error`` key when the skill doesn't exist (with the available names).
impactCompute the blast radius of changing ``target`` in the key's workspace. Use this before editing code to see what a change ripples into: direct callers/callees, every affected file, the affected tests, the transitive dependency set, and example dependency paths with per-path facts (hops, dependents at the endpoint, whether it lands in a test). There is deliberately no risk score. There was one — thresholds on the transitive count — and it was a verdict the caller could not check or argue with. The counts it was computed from are all here; judge from those. Args: target: A graph node id, wiki page name, file path (``micrograd/engine.py``), or a function fqn (``engine.py::func``). depth: How many hops to traverse the call graph (default 2). Returns the impact dict — ``{target, label, found, direct_callers, direct_callees, affected_files, affected_tests, transitive_nodes, transitive_count, paths, path_facts}``.
list_pagesList every wiki page the caller can see in the key's workspace. Returns a list of ``{category, name, title}`` records — feed each one to ``get_page`` to fetch the full markdown body. Use this first when you want a directory view; for a specific question prefer ``query`` which handles retrieval for you.
list_proposed_actionsList the key's workspace's proposed actions (the approval queue). Read-only. Optionally filter by ``status`` (proposed / approved / executing / done / failed / dismissed). Returns ``{id, action_type, status, source, title, source_doc_id, external_id}`` per proposal. NOTE: MCP can read and PROPOSE actions but deliberately cannot approve or execute them — a human approves every action in the app UI.
list_reposList the repos ingested into the key's workspace. Returns ``{full_name, branch, last_ingested_at}`` records. Use this when the agent needs to know what context is available before asking a question. Reads what ingest actually recorded for this namespace: ``repos.json`` (the repo→clone map every other read path resolves through) plus the per-repo ``_state`` files that carry the branch and the last run's timestamp. It used to read a Firestore subcollection ``users/{uid}/repos``, which was wrong twice over. It was keyed by the person rather than the workspace — the bug this module was fixed for — and nothing in the codebase has ever written to that path, so the tool returned an empty list to everyone, forever. Hence ``branch`` rather than the old ``default_branch``: the state file records the branch that was actually ingested, and no caller can be depending on a key that never had a row under it.
list_skillsList the compiled skills (recurring procedures) in the key's workspace. Skills are agent-executable SKILL.md pages mined from that workspace's wiki by the skills compiler. Returns ``{name, title, description, confidence, last_compiled, sources}`` records — feed a ``name`` to ``get_skill`` for the full markdown. Empty list = nothing compiled yet (the user can run a compile from Enhanciar's UI or API).
propose_actionPropose a new action for human approval (does NOT execute it). ``action_type`` is a registered executor id (e.g. ``jira.create_issue``, ``linear.create_issue``, ``github.create_issue``). The proposal lands in the key's workspace's approval queue where a person picks the target and approves it — approve/execute are intentionally NOT exposed over MCP. Returns the created ``{id, action_type, status}`` or an ``error``.
queryAsk Enhanciar a natural-language question grounded in the key's workspace. This is the high-level tool — use it for any "what does X do", "why did we choose Y", "where is Z handled" question. It runs the full retrieval + synthesis pipeline and returns the answer plus citations. Args: question: Natural-language question. model: Optional model id override (``gemini-2.5-flash``, ``gpt-4o``, ``claude-sonnet-4-5``, etc.). If omitted the saved default is used — the workspace's in a team workspace, the caller's own in a personal one. Returns ``{answer, sources, model}`` — ``sources`` is a list of ``{category, name, url}`` citations the LLM grounded its answer in. Surface them to the human so they can verify. When the workspace has nothing ingested at all you get ``{answer, empty_brain: true}`` and no sources: that is a statement about the workspace, not a failed search, so rephrasing the question will not change it.
search_wikiSubstring search across the wiki pages in the key's workspace. Cheap and deterministic — no embedding required. Returns up to ``limit`` (default 20, max 50) ``{category, name, title, snippet}`` hits. The ``snippet`` is a short window around the first match, safe to surface in chat as a citation preview. For semantic / natural-language questions prefer ``query``.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "in.enhanciar/enhanciar",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "auth": "Authorization: Bearer dh_<key> — keys minted in the Enhanciar app (Settings → API keys).",
      "docs": "https://enhanciar.in/docs",
      "about": "Enhanciar is a company brain for your whole team. Ask anything about your company in plain English and get the answer with a link to the source: it reads Slack, Gmail, Google Drive, Notion, Confluence, Jira, Linear, Zendesk, GitHub, databases and PDFs. Then hand it the follow-up: it drafts the reply, ticket, doc or calendar hold and waits for a person to approve. It also reviews pull requests and runs impact analysis (what breaks if this changes). Use it in the web app, in Slack, or from Claude, Cursor and any MCP client.",
      "tools": [
        {
          "name": "query",
          "description": "Answer a plain-English question about the company, with sources. Start here; it costs AI tokens on your own key. Use search_wiki + get_page for exact page text."
        },
        {
          "name": "search_wiki",
          "description": "Find wiki pages containing a word or phrase. Exact match, no AI tokens. Returns name, title and a snippet for each hit (limit 1-50, default 20)."
        },
        {
          "name": "get_page",
          "description": "Read the full Markdown of one wiki page, by category + name or a path like concepts/billing-flow, from search_wiki or list_pages."
        },
        {
          "name": "list_pages",
          "description": "List every wiki page you can see (category, name, title). For a topic use search_wiki; for a question use query."
        },
        {
          "name": "get_graph",
          "description": "The workspace's knowledge graph: topics, links and clusters, for the big picture rather than page content."
        },
        {
          "name": "impact",
          "description": "What else breaks or needs retesting if you change a file or function: callers, callees, affected files and tests (depth default 2)."
        },
        {
          "name": "list_repos",
          "description": "The code repos ingested into the workspace, with branch and last ingest time. Check before asking about code."
        },
        {
          "name": "get_process_map",
          "description": "Map of how the company works: procedures, the tools they use (GitHub, Slack, Jira) and the docs behind them."
        },
        {
          "name": "list_skills",
          "description": "List the team's recurring procedures (skills) Enhanciar wrote up; read one with get_skill."
        },
        {
          "name": "propose_action",
          "description": "File a Jira, Linear or GitHub issue, Slack message, calendar hold, Gmail draft (never sent), Notion page or Zendesk note for a person to approve. Nothing runs until they do."
        },
        {
          "name": "get_skill",
          "description": "Read the full steps of one skill by its name from list_skills."
        },
        {
          "name": "list_proposed_actions",
          "description": "The approval queue: actions waiting for a person, or already done. Filter by status. Read-only; check it before proposing to avoid duplicates."
        }
      ],
      "status": "live",
      "clients": [
        "Claude Desktop",
        "Claude Code",
        "Cursor",
        "Cline",
        "Continue",
        "any streamable-HTTP MCP client"
      ],
      "pricing": "Paid plans: Solo $24/month, Team $100/month for up to 10 people, Enterprise custom. Monthly billing. Bring your own AI key with zero markup.",
      "sources": [
        "Slack",
        "Gmail",
        "Google Drive / Docs",
        "Notion",
        "Confluence",
        "Jira",
        "Linear",
        "Zendesk",
        "GitHub",
        "Databases",
        "PDF"
      ],
      "categories": [
        "knowledge-base",
        "enterprise-search",
        "team-collaboration",
        "developer-tools",
        "documentation"
      ],
      "pricingUrl": "https://enhanciar.in/pricing",
      "featureCatalog": "https://enhanciar.in/enhanciar/features.html"
    }
  },
  "icons": [
    {
      "src": "https://enhanciar.in/apple-touch-icon.png",
      "sizes": [
        "180x180"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://enhanciar.in/favicon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "Enhanciar — company brain",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://enhanciar.in/enhanciar/mcp/",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer dh_<api-key>. Create a key in Enhanciar (Settings → API keys). Plans at https://enhanciar.in/pricing"
        }
      ]
    }
  ],
  "version": "1.0.4",
  "websiteUrl": "https://enhanciar.in",
  "description": "Ask your company's Slack, Gmail, Drive, Notion, Jira and code from any MCP client, with sources."
}