Skip to main content
Glama
bhafin

bharosa-docs-mcp

by bhafin

Bharosa

Bharosa helps coding assistants plan and build integrations using an integration skill and seven read-only documentation tools. It cannot access accounts, execute API requests, transfer assets, or run examples.

Release and scope

Version 0.3.2 bundles the public website v29 documentation and public bharosa@0.6.0 contracts: 113 documents, 32 API operations and 126 examples. The source checkpoint is signed commit 1e1b73a6b4cee0fb0b8e8d9c5a4bb04f5c68fcf4. This GitHub full-plugin release is separate from npm server publication and public directory acceptance.

The hosted service is https://mcp.bharosa.finance/; /up is its health check and /mcp is retired. The service serves a pinned documentation snapshot. Check tool response provenance when comparing it with the website.

Related MCP server: @prosodyai/mcp-docs

Full plugin installation

Extract the full-plugin release archive and run from its root:

codex plugin marketplace add .
codex plugin add bharosa-docs@bharosa

For Claude Code, use a session-only full plugin:

claude --plugin-dir ./plugins/bharosa-docs

Or install its local catalogue persistently:

claude plugin marketplace add .
claude plugin install bharosa-docs@bharosa

Start a new session. Ask: “Use the Bharosa integration skill to plan an own-account portfolio dashboard. Retrieve the relevant guides and examples, state their versions, and propose synthetic tests. Do not use real credentials.” In Claude Code the explicit skill is /bharosa-docs:bharosa-integration.

These install the skill and MCP connection together. A bare MCP connection does not install the skill. Codex desktop UI installation and Claude web skill loading are not proven by CLI tests. Your AI host needs its own login and usage allowance; the public documentation MCP needs no Bharosa login or key. No public directory approval is required for the local catalogue route.

Tools

  • bharosa_docs_list, bharosa_docs_search, bharosa_docs_read

  • bharosa_api_search, bharosa_api_details

  • bharosa_examples_search, bharosa_examples_read

All responses carry snapshot/source provenance. Search is literal and deterministic. Use returned IDs and pagination; reads are capped at 8,000 UTF-16 code units, with a universal serialized result cap of 131,072 bytes. API method filters select reference text, never an action. The integration skill provides grounded planning; there is no autonomous planner or account-action tool.

Local server and maintainer checks

Use Node.js 22.12 or later on a supported LTS line. Install the reviewed tarball in an isolated project, then run its CLI directly:

npm install --ignore-scripts /absolute/path/bharosa-docs-mcp-0.3.2.tgz
node node_modules/bharosa-docs-mcp/dist/cli.js --check
node node_modules/bharosa-docs-mcp/dist/cli.js --stdio

No credentials, remote fetch or arbitrary filesystem paths are accepted by tools. Keep stdout reserved for MCP protocol messages.

Source organization: src/ runtime; scripts/ pinned generators/build/package verification; tests/ synthetic protocol/security/example checks; assets/ generated public corpus; plugins/ host manifests and skill. Runtime dependencies are bundled for offline installation. The development lock pins the verified public SDK archive and registry integrity. Source development requires the pinned public dependencies; clean archive consumption is separately tested.

npm run build
npm test
npm run verify:package
BHAROSA_MARKETING_ROOT=/path/to/reviewed/staged/public/input npm run docs:check
BHAROSA_MARKETING_ROOT=/path/to/reviewed/staged/public/input npm run coding:check

Generators accept only pinned public source files. Website modules retain marketing source paths; separately staged public SDK contracts retain their original sdk/test/ paths and hashes. No private first-party contracts or licensed UI assets are included. Changing a source requires a reviewed checkpoint, regeneration, tests and a new release; installed snapshots do not refresh themselves.

The analytics reference includes the reviewed production metadata correction. Synthetic checks are not proof of an authenticated production journey. Determine delegated onboarding availability from the coordinated deployment evidence; this local candidate does not establish live availability. Do not invent OAuth endpoints or grant credentials.

Support and license

MIT, with dependency notices in THIRD-PARTY-NOTICES.txt. Report issues at https://github.com/bhafin/plugin/issues using synthetic examples only. Never post credentials, financial records or private logs. Public docs: https://developers.bharosa.finance/docs/documentation-assistant#hosted . Directory listings remain pending.

Available Tools

7 tools
bharosa_api_detailsRead Bharosa API DocumentationA
Read-onlyIdempotent

Read one canonical API operation: method, path, parameters, body/responses and available source examples. Follow schema document IDs for referenced definitions. No API execution or credentials.

NameRequiredDescriptionDefault
operationIdYes

Output Schema

NameRequiredDescription
noticeYes
operationYes
exampleIdsYes
reviewedOnYes
sdkVersionYes
availabilityYes
codingSha256Yes
bundleVersionYes
codingVersionYes
checkpointDateYes
contractVersionYes
schemaDocumentIdsYes
contractSourcePathYes
contractSourceSha256Yes
publicContractSha256Yes
publicContractVersionYes
approvedManifestSha256Yes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new context: what the response contains, that it resolves referenced definitions via schema document IDs, and that no execution or credentials are involved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with the primary action, then the chaining hint, then the boundary statement. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists so return values need not be spelled out, and the description still sketches them; chaining guidance and the no-execution boundary round it out. The missing piece is how to source the operationId.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 0% schema description coverage; the schema constrains its format (pattern, max length) but not its meaning. The description implies operationId identifies the operation but never says how to obtain one (presumably from bharosa_api_search), leaving the main practical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource ('one canonical API operation') and enumerates the payload: method, path, parameters, body/responses, examples. It implicitly distinguishes itself from the search/list siblings by returning full detail for a single operation, though it never names them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'No API execution or credentials' scopes it as documentation-only, and 'Follow schema document IDs for referenced definitions' hints at chaining to a docs-read tool. But there is no explicit when-to-use-this-vs-bharosa_api_search or where to obtain an operationId.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bharosa_docs_listList Bharosa DocumentationA
Read-onlyIdempotent

List bundled public documentation. Offset is a document index; at most 20 results. No filesystem or network access from arguments.

NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

NameRequiredDescription
totalYes
noticeYes
documentsYes
nextOffsetYes
reviewedOnYes
availabilityYes
bundleVersionYes
checkpointDateYes
contractVersionYes
contractSourcePathYes
contractSourceSha256Yes
publicContractSha256Yes
publicContractVersionYes
approvedManifestSha256Yes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds useful behavioral context beyond that by noting the 20-result cap and that arguments do not grant filesystem or network access.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with the purpose front-loaded. Each sentence adds useful information without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only list tool with annotations and an output schema, the description is mostly complete. The main remaining gap is that limit semantics and sibling routing are not spelled out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry more weight. It explains offset as a document index and notes a 20-result maximum, but it does not explain the limit parameter's meaning or default, leaving part of the parameter semantics unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: list bundled public documentation. It is distinguishable from the search/read siblings by the word 'List,' but it does not explicitly name or compare itself to those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this tool to browse bundled documentation. However, there is no explicit guidance on when to prefer it over bharosa_docs_search or bharosa_docs_read, and no exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bharosa_docs_readRead Bharosa DocumentationA
Read-onlyIdempotent

Read bundled documentation by its allowlisted ID from bharosa_docs_list. Offset and maxChars count UTF-16 code units; at most 8000 per response. No path or URL input.

NameRequiredDescriptionDefault
idYes
offsetNo
maxCharsNo

Output Schema

NameRequiredDescription
noticeYes
offsetYes
contentYes
documentYes
nextOffsetYes
reviewedOnYes
availabilityYes
bundleVersionYes
checkpointDateYes
contractVersionYes
contractSourcePathYes
contractSourceSha256Yes
publicContractSha256Yes
publicContractVersionYes
approvedManifestSha256Yes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false, destructiveHint=false), so the bar is lower. The description adds real behavioral context beyond them: paging is in UTF-16 code units and a single response is capped at 8000, which tells the agent to expect chunked reads and loop. It does not say how truncation/continuation is signalled, which is the one remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences, front-loaded with the core action and prerequisite, then the unit/size caveat, then the negative constraint. Every clause adds information the agent does not already have from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. For a paginated read tool the only substantive omission is guidance on detecting truncation and advancing offset, but the unit and cap statements make correct paging largely inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load, and it does for the two ambiguous params: offset and maxChars are declared to count UTF-16 code units with an 8000 ceiling. The id param's meaning is conveyed by "allowlisted ID from bharosa_docs_list" rather than the schema's regex pattern. Missing are defaults and failure behavior for a non-allowlisted ID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Read bundled documentation") and pins the access key to an allowlisted ID sourced from bharosa_docs_list, which cleanly separates it from the search-style siblings. An agent can tell this is ID-based retrieval, not search, without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly directs the agent to bharosa_docs_list to obtain a valid ID and closes off a likely wrong usage ("No path or URL input"). It stops short of naming bharosa_docs_search as the alternative for when the agent has a query rather than an ID, so the routing is clear but not fully enumerated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bharosa_examples_readRead Bharosa Code ExampleA
Read-onlyIdempotent

Read a canonical example by allowlisted ID, its optional initialization context and source hash. UTF-16 offsets; at most 8000 code units. Returns text only; never executes code.

NameRequiredDescriptionDefault
idYes
offsetNo
maxCharsNo

Output Schema

NameRequiredDescription
codeYes
setupYes
noticeYes
offsetYes
exampleYes
nextOffsetYes
reviewedOnYes
sdkVersionYes
availabilityYes
codingSha256Yes
bundleVersionYes
codingVersionYes
checkpointDateYes
contractVersionYes
contractSourcePathYes
contractSourceSha256Yes
publicContractSha256Yes
publicContractVersionYes
approvedManifestSha256Yes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only, idempotent, non-destructive, non-open-world safety profile. The description adds meaningful behavioral context beyond that: UTF-16 offsets, an 8000-code-unit cap, text-only output, and the fact that code is never executed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences, front-loads the core lookup action, and packs offset, size, and execution-safety constraints without unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has rich annotations, an output schema, and only three parameters, so the description does not need to explain return values. It covers the key operational constraints, though it leaves the relationship to bharosa_examples_search and ID acquisition implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate for all three parameters. It explains that the ID is allowlisted, that offsets are in UTF-16 code units, and that output is capped at 8000 code units, but it does not fully explain offset starting-position semantics, maxChars defaults, or the relationship between the two pagination parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: read a canonical example. The phrase 'by allowlisted ID' distinguishes it from the sibling search tool and makes clear it is an ID-based lookup rather than a discovery operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'by allowlisted ID', which tells the agent an ID is required, but the description does not explicitly say when to use this versus bharosa_examples_search or how to obtain a valid allowlisted ID.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.3.2
    • Changedbharosa_api_details3 fields changed
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / codingVersion / const
        Previous value: -"0.2.0-coding.1"New value: +"0.3.2-coding.1"
      • changedOutput schema / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
    • Changedbharosa_api_search5 fields changed
      • addedInput schema / properties / method / description
        Added value: +"Filter reference documents by their documented HTTP verb. Never executes that method or any network request."
      • addedInput schema / properties / query / description
        Added value: +"Required nonblank literal search text, even when using group or method filters. For monthly API references, try query nav with group monthly. Maximum 120 raw characters."
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / codingVersion / const
        Previous value: -"0.2.0-coding.1"New value: +"0.3.2-coding.1"
      • changedOutput schema / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
    • Changedbharosa_docs_list2 fields changed
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / documents / items / properties / sourcePath / enum
        Previous value: -[
        -  "marketing/src/content/guides.ts",
        -  "marketing/contracts/openapi.json"
        -]New value: +[
        +  "marketing/src/content/guides.ts",
        +  "marketing/src/content/analytics-guides.ts",
        +  "sdk/test/openapi.json",
        +  "sdk/test/analytics.openapi.json",
        +  "sdk/test/market-search.openapi.json",
        +  "marketing/src/content/consent-guide.ts"
        +]
    • Changedbharosa_docs_read2 fields changed
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / document / properties / sourcePath / enum
        Previous value: -[
        -  "marketing/src/content/guides.ts",
        -  "marketing/contracts/openapi.json"
        -]New value: +[
        +  "marketing/src/content/guides.ts",
        +  "marketing/src/content/analytics-guides.ts",
        +  "sdk/test/openapi.json",
        +  "sdk/test/analytics.openapi.json",
        +  "sdk/test/market-search.openapi.json",
        +  "marketing/src/content/consent-guide.ts"
        +]
    • Changedbharosa_docs_search2 fields changed
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / matches / items / properties / sourcePath / enum
        Previous value: -[
        -  "marketing/src/content/guides.ts",
        -  "marketing/contracts/openapi.json"
        -]New value: +[
        +  "marketing/src/content/guides.ts",
        +  "marketing/src/content/analytics-guides.ts",
        +  "sdk/test/openapi.json",
        +  "sdk/test/analytics.openapi.json",
        +  "sdk/test/market-search.openapi.json",
        +  "marketing/src/content/consent-guide.ts"
        +]
    • Changedbharosa_examples_read6 fields changed
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / codingVersion / const
        Previous value: -"0.2.0-coding.1"New value: +"0.3.2-coding.1"
      • changedOutput schema / properties / example / properties / language / enum
        Previous value: -[
        -  "typescript",
        -  "bash",
        -  "json"
        -]New value: +[
        +  "typescript",
        +  "javascript",
        +  "bash",
        +  "json"
        +]
      • changedOutput schema / properties / example / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
      • changedOutput schema / properties / example / properties / validation / enum
        Previous value: -[
        -  "strict-typescript-and-synthetic-transport",
        -  "strict-typescript",
        -  "shell-syntax-only",
        -  "json-parse"
        -]New value: +[
        +  "strict-typescript-and-synthetic-transport",
        +  "strict-typescript",
        +  "shell-syntax-only",
        +  "javascript-syntax-only",
        +  "json-parse"
        +]
      • changedOutput schema / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
    • Changedbharosa_examples_search8 fields changed
      • changedInput schema / properties / language / enum
        Previous value: -[
        -  "typescript",
        -  "bash",
        -  "json"
        -]New value: +[
        +  "typescript",
        +  "javascript",
        +  "bash",
        +  "json"
        +]
      • addedInput schema / properties / query / description
        Added value: +"Required nonblank literal search text, even when using language or operationId filters. Use the operation ID as query to find its examples. Maximum 120 raw characters."
      • changedOutput schema / properties / bundleVersion / const
        Previous value: -"0.2.0-docs.1"New value: +"0.3.2-docs.1"
      • changedOutput schema / properties / codingVersion / const
        Previous value: -"0.2.0-coding.1"New value: +"0.3.2-coding.1"
      • changedOutput schema / properties / matches / items / properties / language / enum
        Previous value: -[
        -  "typescript",
        -  "bash",
        -  "json"
        -]New value: +[
        +  "typescript",
        +  "javascript",
        +  "bash",
        +  "json"
        +]
      • changedOutput schema / properties / matches / items / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
      • changedOutput schema / properties / matches / items / properties / validation / enum
        Previous value: -[
        -  "strict-typescript-and-synthetic-transport",
        -  "strict-typescript",
        -  "shell-syntax-only",
        -  "json-parse"
        -]New value: +[
        +  "strict-typescript-and-synthetic-transport",
        +  "strict-typescript",
        +  "shell-syntax-only",
        +  "javascript-syntax-only",
        +  "json-parse"
        +]
      • changedOutput schema / properties / sdkVersion / const
        Previous value: -"0.1.0"New value: +"0.6.0"
  2. 7 tool updatesv0.2.0
    • First observedbharosa_api_details
    • First observedbharosa_api_search
    • First observedbharosa_docs_list
    • First observedbharosa_docs_read
    • First observedbharosa_docs_search
    • First observedbharosa_examples_read
    • First observedbharosa_examples_search

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation4/5

The set splits cleanly into three resource families (api, examples, docs), each with search/read-style operations, so most tools are easy to tell apart. The main soft spot is bharosa_api_search vs bharosa_docs_search, since API reference pages are arguably also bundled docs; the descriptions clarify the difference (API operations vs general doc index) but an agent could still hesitate.

Naming Consistency4/5

All tools share a predictable bharosa_<resource>_<action> pattern with snake_case throughout. The only deviation is bharosa_api_details, which uses a noun ('details') instead of a verb like read/get, breaking the otherwise uniform verb convention.

Tool Count5/5

Seven tools is well-scoped for a read-only documentation server, with each tool earning its place across three resource families. Nothing feels padded or missing at the count level.

Completeness4/5

Docs have list/search/read, examples have search/read, and API operations have search/details, covering the core read-only lifecycle. Minor gaps: there is no way to enumerate API operations or list examples directly (only search), so discovery depends on guessing good queries.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides tools for AI agents to search, browse, and retrieve the full documentation for the mcp-framework. It enables agents to access documentation sections and page content directly within MCP-compatible environments like Claude Code and Cursor.
    3
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides MCP tools to list and search OpenAI Agents SDK documentation, enabling LLMs to retrieve documentation topics and content via natural language queries.
    45 PyPI
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search, read, and traverse documentation bundles in Open Knowledge Format via MCP tools.
    705 npm
    75
    MIT