io.github.dappros/ethora-mcp-cli
NPM · @ETHORA/MCP-SERVER · SCANNED AUG 3
MCP server for the Ethora chat & messaging platform: chat ops, AI agents, RAG, automation.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (108 of 109), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (ISC).Pass
- Actively maintained (last published 80 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 21110 tokens (~263/item across 80 items; 76 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @ethora/mcp-server
claude mcp add dappros-ethora-mcp-cli -- npx -y @ethora/mcp-server
codex mcp add dappros-ethora-mcp-cli -- npx -y @ethora/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dappros-ethora-mcp-cli": {
"type": "local",
"command": [
"npx",
"-y",
"@ethora/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add dappros-ethora-mcp-cli --command npx --arg -y --arg @ethora/mcp-server
mcp_servers:
dappros-ethora-mcp-cli:
command: "npx"
args: ["-y", "@ethora/mcp-server"] {
"mcpServers": {
"dappros-ethora-mcp-cli": {
"command": "npx",
"args": [
"-y",
"@ethora/mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 −4
No change was recorded against any check on this day. Supply Chain Security went from 98 to 87.
- 1 Aug 26 +64
- Provenance: unverified → fail ▼ security
- Malware scan: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Tool coverage: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Licence: ISC functional
- 31 Jul 26 −4
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −70
- Provenance: fail → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- Malware scan: pass → unverified ▼ security
- Known CVEs: partial → unverified ▼ security
- License: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: ISC functional
- 27 Jul 26 +42
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 32
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@ethora/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 108 packages
108 packages in the resolved dependency tree · 108 deprecated · 32 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ethora-sources-docs-upload ~290
Upload documents (PDF, text, etc.) into an app's RAG sources so the app's AI bot can answer from them (legacy user-auth route). Auth: user-auth mode with an active user session; the user must own the app. Side effects: stores each document and starts a parse + embedding job; content becomes queryable RAG context once indexing finishes (not synchronous). Idempotent: no — re-uploading the same document creates another source record. Input design: files are base64 so the MCP server never reads your local filesystem. Client-side guardrail rejects any single file over 50MB; the server enforces its own limits too. Failure modes: 401 if not logged in; 403 if the user doesn't own the app; 413 if too large; 422 on an unsupported document type. Per-call limit: 1–5 files. Related: `ethora-sources-docs-delete` (remove), `ethora-sources-site-crawl` (ingest a URL instead). For app-token / B2B flows use `ethora-sources-docs-upload-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to ingest into. Optional — defaults to the app set via `ethora-app-select`. |
| files | array | yes | 1 to 5 documents to ingest in this call. |
No output schema declared.
No examples provided.
ethora-sources-docs-upload-v2 ~317
Upload documents (PDF, text, etc.) into an app's RAG sources (app-token / B2B variant of `ethora-sources-docs-upload`). Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: stores each document and starts a parse + embedding job; content becomes queryable RAG context once indexing finishes (not synchronous). Idempotent: no — re-uploading the same document creates another source record. Input design: files are base64 so the MCP server never reads your local filesystem. Client-side guardrail rejects any single file over 50MB; the server enforces its own limits too. Failure modes: 401/403 on missing/wrong auth; 404 if `appId` is invalid; 413 if too large; 422 on an unsupported document type. Per-call limit: 1–5 files. Related: `ethora-sources-docs-list-v2` (see results), `ethora-sources-docs-delete-v2` (remove), `ethora-sources-docs-tags-update-v2` (tag).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to ingest into. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| files | array | yes | 1 to 5 documents to ingest in this call. |
No output schema declared.
No examples provided.
ethora-sources-site-crawl ~332
Crawl a website URL and ingest its content into an app's RAG sources, so the app's AI bot can answer from it (legacy user-auth route). Auth: user-auth mode with an active user session; the user must own the app. Side effects: starts a crawl + embedding job on the server; pages become queryable RAG context once indexing finishes (not synchronous). With `followLink: true` the crawler also follows in-domain links, which can ingest many pages. Idempotent: no — re-crawling the same URL adds/updates source records; combined with `followLink` it can fan out broadly. Failure modes: 401 if not logged in; 403 if the user doesn't own the app; 400 if `url` is malformed; 404 if `appId` is invalid. Related: `ethora-sources-site-reindex` (refresh), `ethora-sources-site-delete-url` (remove), `ethora-sources-docs-upload` (ingest documents instead of a URL). For app-token / B2B flows use `ethora-sources-site-crawl-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to ingest into. Optional — defaults to the app set via `ethora-app-select`. |
| followLink | boolean | — | If true, also crawl in-domain links reachable from `url`. Can ingest many pages — use with care. Default false (single page). |
| url | string | yes | Absolute URL to crawl, e.g. `https://example.com/docs`. |
No output schema declared.
No examples provided.
ethora-sources-site-crawl-v2 ~333
Crawl a website URL and ingest its content into an app's RAG sources (app-token / B2B variant of `ethora-sources-site-crawl`). Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: starts a crawl + embedding job; pages become queryable RAG context once indexing finishes (not synchronous — this returns once the job is accepted). With `followLink: true` the crawler also follows in-domain links and can ingest many pages. Idempotent: no — re-crawling adds/updates source records. Failure modes: 401/403 on missing/wrong auth; 400 if `url` is malformed; 404 if `appId` is invalid. Related: `ethora-sources-site-crawl-v2-wait` (block until done), `ethora-sources-site-list-v2` (see results), `ethora-sources-site-reindex-v2` (refresh), `ethora-sources-site-delete-url-v2` (remove).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to ingest into. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| followLink | boolean | — | If true, also crawl in-domain links reachable from `url`. Can ingest many pages — use with care. |
| url | string | yes | Absolute URL to crawl, e.g. `https://example.com/docs`. |
No output schema declared.
No examples provided.
ethora-sources-site-crawl-v2-wait ~369
Crawl a website URL and block until the server finishes the request — a single-call, long-timeout variant of `ethora-sources-site-crawl-v2`. Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: same as `ethora-sources-site-crawl-v2` (crawl + embed into RAG sources), but this MCP call blocks for up to `timeoutMs` waiting for the server's response instead of returning as soon as the job is accepted. Idempotent: no — re-crawling adds/updates source records. Failure modes: 401/403 on missing/wrong auth; 400 if `url` is malformed; 504/timeout if the crawl takes longer than `timeoutMs` (the job may still complete server-side — check with `ethora-sources-site-list-v2`). Returns: `{ done: true, durationMs, result }`. Use the non-wait `ethora-sources-site-crawl-v2` if you'd rather not block.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to ingest into. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| followLink | boolean | — | If true, also crawl in-domain links reachable from `url`. Can ingest many pages — use with care. |
| timeoutMs | integer | — | How long to wait for the crawl to finish, in milliseconds. Default 120000. Caps at 600000 (10 min). |
| url | string | yes | Absolute URL to crawl, e.g. `https://example.com/docs`. |
No output schema declared.
No examples provided.
ethora-sources-site-delete-records-v1 ~247
Bulk-remove crawled URLs from an app's RAG sources in one call, matched by exact url strings (legacy owner/admin user-auth route). Auth: user-auth mode with an active user session; the user must own the app. Side effects: deletes each matching source record and its embeddings. Not reversible. Idempotent: yes — URLs not present are skipped. Failure modes: 401 if not logged in; 403 if the user doesn't own the app; 404 if `appId` is invalid. Per-call limit: 1–100 URLs. When to use: cleaning up many pages at once. For the single-URL variant use `ethora-sources-site-delete-url`; for app-token / B2B flows use `ethora-sources-site-delete-url-v2-batch`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URLs belong to. Optional — defaults to the app set via `ethora-app-select`. |
| urls | array | yes | Exact crawled URL strings to remove, 1–100 per call. Get the stored values from `ethora-sources-site-list-v2`. |
No output schema declared.
No examples provided.
ethora-sources-site-delete-url ~259
Remove a single crawled URL from an app's RAG sources, matched by its exact url string (legacy user-auth route). Auth: user-auth mode with an active user session; the user must own the app. Side effects: deletes the source record and its embeddings; the app's bot can no longer answer from that page. Not reversible (re-add via `ethora-sources-site-crawl`). Idempotent: yes — deleting an already-removed URL is a no-op / 404. Failure modes: 401 if not logged in; 403 if the user doesn't own the app; 404 if the exact `url` string isn't a crawled source. Note: matches on the exact URL string — get the stored value from `ethora-sources-site-list-v2`. To delete several at once use `ethora-sources-site-delete-records-v1`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URL belongs to. Optional — defaults to the app set via `ethora-app-select`. |
| url | string | yes | Exact crawled URL string to remove (must match what was stored — get it from `ethora-sources-site-list-v2`). |
No output schema declared.
No examples provided.
ethora-sources-site-delete-url-v2 ~288
Remove a single crawled URL from an app's RAG sources, matched by its exact url string (app-token / B2B variant of `ethora-sources-site-delete-url`). Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: deletes the source record and its embeddings; the bot can no longer answer from that page. Not reversible (re-add via `ethora-sources-site-crawl-v2`). Idempotent: yes — deleting an already-removed URL is a no-op / 404. Failure modes: 401/403 on missing/wrong auth; 404 if the exact `url` isn't a crawled source. Matches on the exact URL string — get the stored value from `ethora-sources-site-list-v2`. To delete several by id use `ethora-sources-site-delete-url-v2-batch`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URL belongs to. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| url | string | yes | Exact crawled URL string to remove (must match what was stored — get it from `ethora-sources-site-list-v2`). |
No output schema declared.
No examples provided.
ethora-sources-site-list-v2 ~208
List an app's crawled website sources, including each source's id, URL, and current RAG tags. Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: none — read-only. Idempotent: yes. Failure modes: 401/403 on missing/wrong auth; 404 if `appId` is invalid; returns an empty list if nothing has been crawled. Returns: site source records. Their ids feed `ethora-sources-site-tags-update-v2`, `ethora-sources-site-delete-url-v2-batch`, and `ethora-sources-site-reindex-v2` (`urlId`).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId to list sources for. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
No output schema declared.
No examples provided.
ethora-sources-site-reindex ~261
Re-crawl and re-embed a previously crawled URL by its `urlId`, refreshing the RAG content for that page (legacy user-auth route). Auth: user-auth mode with an active user session; the user must own the app. Side effects: starts a refresh job on the server; the page's existing source record is updated in place once indexing finishes (not synchronous). Idempotent: effectively yes — re-running just refreshes the same record again. Failure modes: 401 if not logged in; 403 if the user doesn't own the app; 404 if `appId` or `urlId` is unknown. When to use: the source page changed and you want the bot to pick up the new content. Get `urlId` values from `ethora-sources-site-list-v2`. For app-token / B2B flows use `ethora-sources-site-reindex-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URL belongs to. Optional — defaults to the app set via `ethora-app-select`. |
| urlId | string | yes | Id of a previously crawled URL record. Get it from `ethora-sources-site-list-v2`. |
No output schema declared.
No examples provided.
ethora-sources-site-reindex-v2 ~260
Re-crawl and re-embed a previously crawled URL by its `urlId`, refreshing its RAG content (app-token / B2B variant of `ethora-sources-site-reindex`). Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: starts a refresh job; the existing source record is updated in place once indexing finishes (not synchronous). Idempotent: effectively yes — re-running just refreshes again. Failure modes: 401/403 on missing/wrong auth; 404 if `appId` or `urlId` is unknown. Get `urlId` values from `ethora-sources-site-list-v2`. Use `ethora-sources-site-reindex-v2-wait` to block until done.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URL belongs to. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| urlId | string | yes | Id of a previously crawled URL record. Get it from `ethora-sources-site-list-v2`. |
No output schema declared.
No examples provided.
ethora-sources-site-reindex-v2-wait ~318
Re-crawl and re-embed a previously crawled URL and block until the server finishes — a single-call, long-timeout variant of `ethora-sources-site-reindex-v2`. Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: same as `ethora-sources-site-reindex-v2` (refresh the source record's RAG content), but this MCP call blocks for up to `timeoutMs`. Idempotent: effectively yes. Failure modes: 401/403 on missing/wrong auth; 404 if `appId` or `urlId` is unknown; 504/timeout if it takes longer than `timeoutMs` (the job may still complete server-side). Returns: `{ done: true, durationMs, result }`. Get `urlId` values from `ethora-sources-site-list-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the URL belongs to. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| timeoutMs | integer | — | How long to wait for the reindex to finish, in milliseconds. Default 120000. Caps at 600000 (10 min). |
| urlId | string | yes | Id of a previously crawled URL record. Get it from `ethora-sources-site-list-v2`. |
No output schema declared.
No examples provided.
ethora-sources-site-tags-update-v2 ~301
Set the RAG retrieval tags on a crawled website source. Tags let the bot's `ragTags` setting narrow which sources it retrieves from. Auth: app-token mode (after `ethora-app-select` + `ethora-auth-use-app`) OR B2B mode with an explicit `appId`. Side effects: **replaces** the source's tag set with the provided `tags` array (it is not additive — pass the full desired set, or an empty array to clear all tags). Idempotent: yes — re-sending the same tags is a no-op. Failure modes: 401/403 on missing/wrong auth; 404 if `appId` or `sourceId` is unknown. Get `sourceId` values from `ethora-sources-site-list-v2`. The doc equivalent is `ethora-sources-docs-tags-update-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the source belongs to. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| sourceId | string | yes | Id of the crawled site source to tag. Get it from `ethora-sources-site-list-v2`. |
| tags | array | yes | The complete desired tag set for this source (replaces any existing tags). Up to 50 tags; pass `[]` to clear all. |
No output schema declared.
No examples provided.
ethora-status ~136
Report the current Ethora MCP session state: configured API URL, active auth mode, which credentials are present, and the currently selected appId/agentId. Auth: none required. Side effects: none — read-only. Idempotent: yes. Failure modes: effectively none. Returns: a state object with booleans like `hasAppJwt` / `hasB2BToken` / `hasUserToken` (credential *values* are never echoed back). Use it to decide which `ethora-auth-use-*` tool to call next, or run `ethora-doctor` for an active connectivity check.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ethora-user-login ~254
Authenticate as an existing Ethora user with email + password. Auth: user-auth mode (call `ethora-auth-use-user` first) and a configured `appJwt` (env or `ethora-configure`). Side effects: stores the resulting user session token in this MCP session; unlocks user-auth tools (`ethora-app-list`, `ethora-app-create`, `ethora-files-*`, `ethora-wallet-*`). Idempotent: yes — safe to retry on transport failures. Failure modes: 401/403 on bad credentials; 404 if the email isn't registered; 429 if the Ethora server's per-IP login rate limit is hit (retry with backoff). Related: `ethora-user-register` (create account first), `ethora-auth-use-user` (switch mode), `ethora-status` (verify session).
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | User's registered email address (RFC 5322). Must match an account created via `ethora-user-register` and verified via the link sent to that address. | |
| password | string | yes | Plain-text password the user set during registration. Sent over TLS to the Ethora API; never echoed back or logged. |
No output schema declared.
No examples provided.
ethora-user-register Ethora registration ~320
Register a new Ethora end-user account by email + first/last name. Auth: user-auth mode and a configured `appJwt` (env or `ethora-configure`) — the JWT tells the server which app the new user belongs to. Side effects: creates a pending user record on the Ethora server and triggers a verification email to the address; the user must click the link in that email before `ethora-user-login` will succeed. Idempotent: safe to retry on transport failures (server deduplicates by email within an app). Calling twice with a fresh email creates one account; calling with an already-registered email returns 422. Failure modes: 422 with a validation error if the email is already registered, if names violate server rules, or if the configured `appJwt` is invalid; 401 if no `appJwt` is configured. When to use: end-user self-serve sign-up flows. For bulk B2B user provisioning prefer `ethora-users-batch-create-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Email address for the new user. Must be RFC-5322 valid and not already registered within this app. The user will receive a verification link they must click before login works. | |
| firstName | string | yes | First name shown in the user's profile and message attributions across chat rooms and the app UI. |
| lastName | string | yes | Last name shown in the user's profile. Required by the server; do not omit unless your Ethora deployment explicitly accepts empty strings. |
No output schema declared.
No examples provided.
ethora-users-batch-create-v2 ~316
Provision many Ethora users in one asynchronous batch job — the bulk equivalent of `ethora-user-register`. Auth: B2B mode (`ethora-auth-use-b2b` + a configured `b2bToken`). Side effects: enqueues a background job (server responds HTTP 202) — users are **not** created synchronously. Each user is created under the B2B tenant's app. With `bypassEmailConfirmation: true` users are usable immediately; otherwise each receives a verification email. Idempotent: no — re-running re-attempts creation; the job itself reports per-user conflicts (already-registered emails) rather than failing the whole batch. Failure modes: 401/403 if not in B2B mode; 422 if the `usersList` fails validation. Per-call limit: 1–100 users. Returns: `{ jobId, statusUrl }`. Track it with `ethora-users-batch-job-v2` (one-shot) or `ethora-wait-users-batch-job-v2` (poll to completion).
| Name | Type | Req | Description |
|---|---|---|---|
| bypassEmailConfirmation | boolean | — | If true, created users skip email verification and are immediately usable. If false/omitted, each user receives a verification link. |
| timeoutMs | integer | — | HTTP timeout for the job-creation request (not the job itself), in milliseconds. Default 30000. |
| usersList | array | yes | The users to create, 1–100 per batch. |
No output schema declared.
No examples provided.
ethora-users-batch-job-v2 ~215
Fetch the current status and per-user results of a users batch job by `jobId` (one-shot, no polling). Auth: B2B mode (`ethora-auth-use-b2b` + a configured `b2bToken`) — must match the auth used to create the job. Side effects: none — read-only. Idempotent: yes. Failure modes: 401/403 if not in B2B mode; 404 if the `jobId` is unknown. Returns: the job object including its `state` (`pending` / `running` / `completed` / `failed`) and per-user outcomes (created / conflict / error). For a blocking wait-until-done, use `ethora-wait-users-batch-job-v2`.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Job id returned by `ethora-users-batch-create-v2`. |
| timeoutMs | integer | — | HTTP timeout for this status request, in milliseconds. Default 10000. |
No output schema declared.
No examples provided.
ethora-wait-broadcast-job-v2 ~315
Block until a broadcast job reaches a terminal state (`completed` or `failed`), or until a timeout — a convenience wrapper around repeated `ethora-chats-broadcast-job-v2` calls. Auth: app-token mode OR B2B mode with an explicit `appId` — must match the auth used to enqueue the job. Side effects: none server-side — read-only polling. Blocks this MCP call for up to `timeoutMs`. Idempotent: yes. Failure modes: 401/403 on missing/wrong auth; 404 if the `jobId` is unknown. Returns: `{ done: true, state, job }` when the job finished, or `{ done: false, reason: "timeout", job }` if `timeoutMs` elapsed first (the job may still finish later — re-check with `ethora-chats-broadcast-job-v2`).
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId the job belongs to. Required in B2B mode unless already set via `ethora-app-select`; ignored in app-token mode. |
| intervalMs | integer | — | Delay between status checks, in milliseconds. Default 1000. Lower = more responsive but more API calls. |
| jobId | string | yes | Job id returned by `ethora-chats-broadcast-v2`. |
| timeoutMs | integer | — | Maximum time to wait, in milliseconds. Default 60000. Caps at 300000 (5 min). |
No output schema declared.
No examples provided.
ethora-wait-users-batch-job-v2 ~273
Block until a users batch job reaches a terminal state (`completed` or `failed`), or until a timeout — a convenience wrapper around repeated `ethora-users-batch-job-v2` calls. Auth: B2B mode (`ethora-auth-use-b2b` + a configured `b2bToken`) — must match the auth used to create the job. Side effects: none server-side — read-only polling. Blocks this MCP call for up to `timeoutMs`. Idempotent: yes. Failure modes: 401/403 if not in B2B mode; 404 if the `jobId` is unknown. Returns: `{ done: true, state, job }` when finished, or `{ done: false, reason: "timeout", job }` if `timeoutMs` elapsed first (the job may still finish later — re-check with `ethora-users-batch-job-v2`).
| Name | Type | Req | Description |
|---|---|---|---|
| intervalMs | integer | — | Delay between status checks, in milliseconds. Default 1000. |
| jobId | string | yes | Job id returned by `ethora-users-batch-create-v2`. |
| timeoutMs | integer | — | Maximum time to wait, in milliseconds. Default 60000. Caps at 300000 (5 min). |
No output schema declared.
No examples provided.
ethora-wallet-get-balance ~149
Read the on-chain wallet balance for the currently authenticated user, across the ERC-20 token(s) the Ethora backend tracks for them. Auth: user-auth mode and an active user session (call `ethora-user-login` first). Side effects: none — read-only, no gas consumed. Idempotent: yes — safe to call repeatedly. Failure modes: 401 if not logged in; 503 if the wallet RPC is temporarily unreachable (safe to retry on 503 with backoff). Returns: balances in the units the Ethora backend reports (typically whole-token integers — confirm with your deployment). Pair with `ethora-wallet-erc20-transfer` to spend.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ethora.b2b.app.bootstrap-ai ~463
Dot-namespaced alias for `ethora-b2b-app-bootstrap-ai` — one-call B2B orchestrator: create an app, index RAG sources, then configure and enable its AI bot. Auth: B2B mode (`ethora.b2b.auth.use` / `ethora-auth-use-b2b` + a configured `b2bToken`). Side effects: runs multiple real operations in sequence (app create, source ingest, bot configure/enable); source ingestion and bot activation are best-effort, so the app is still created even if a later step fails. Not idempotent — each call creates a new app. Failure modes: aborts with the partial step log if app creation fails; previous auth mode restored best-effort on error. Returns: a per-step result log including the new `appId`. Provided for agents that prefer dotted names; behavior matches `ethora-b2b-app-bootstrap-ai`.
| Name | Type | Req | Description |
|---|---|---|---|
| botTrigger | string | — | Bot trigger: `/bot` or `any_message`. |
| crawlUrl | string | — | Optional website URL to crawl and index into the new app's RAG sources. |
| displayName | string | yes | Display name for the new app. |
| docs | array | — | Optional documents to ingest into the new app's RAG sources. |
| enableBot | boolean | — | If true, set the new app's bot to `status: on` (best-effort AI service activation). |
| followLink | boolean | — | For `crawlUrl`: also follow in-domain links (default true). Can ingest many pages. |
| llmModel | string | — | LLM model id for the bot, e.g. `gpt-4o-mini`. Must be available for the chosen provider. |
| llmProvider | string | — | LLM provider for the bot, e.g. `openai` or `openai-compatible`. Must be enabled in your Ethora backend. |
| savedAgentId | string | — | Optional id of an existing saved agent to bind as the new app's active bot. |
| setAsCurrent | boolean | — | If true (default), set the new app as the session's current app and switch to app-token auth. |
No output schema declared.
No examples provided.
ethora.b2b.app.create ~180
Dot-namespaced alias for `ethora-b2b-app-create` — create a new Ethora app server-side. Auth: B2B mode (`ethora.b2b.auth.use` / `ethora-auth-use-b2b` + a configured `b2bToken`). Side effects: provisions a new app record owned by the B2B tenant and allocates a fresh `appId`. Not idempotent — each call creates a new app. Failure modes: 401/403 if not in B2B mode; 422 on an invalid `displayName`. Provided for agents that prefer dotted names. Prefer `ethora-b2b-app-create` in new integrations.
| Name | Type | Req | Description |
|---|---|---|---|
| displayName | string | yes | Human-readable app name shown to users in the app picker and on the public landing page. |
No output schema declared.
No examples provided.
ethora.b2b.auth.use ~104
Dot-namespaced alias for `ethora-auth-use-b2b` — switches the session's active auth mode to B2B (`x-custom-token`). Auth: requires a `b2bToken` to already be configured. Side effects: session state only; no API call. Idempotent: yes. Provided to reduce auth-mode mistakes for agents that prefer dotted names; behavior is identical to `ethora-auth-use-b2b`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ethora.b2b.bot.enable ~267
Dot-namespaced alias for `ethora-b2b-bot-enable` — turn on the AI bot for an app (sets `botStatus: "on"`). Auth: B2B mode (`ethora.b2b.auth.use` / `ethora-auth-use-b2b` + a configured `b2bToken`). Side effects: flips the app's bot status to on; the backend then makes a best-effort activation. The bot only responds if a prompt + LLM are configured and the backend has an AI service set up. Idempotent: yes — enabling an already-on bot is a no-op. Failure modes: 401/403 if not in B2B mode; 404 if `appId` is invalid; 400 if no `appId` is given and none is selected. Provided for agents that prefer dotted names. Prefer `ethora-b2b-bot-enable` in new integrations.
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | — | 24-char hex appId whose bot to enable. Optional — defaults to the app set via `ethora-app-select`. |
| botTrigger | string | — | When the bot responds: `/bot` or `any_message`. Omit to leave the existing trigger unchanged. |
No output schema declared.
No examples provided.
ethora.b2b.broadcast.wait ~263
Dot-namespaced sibling of `ethora-wait-broadcast-job-v2` — block until a broadcast job reaches a terminal state (`completed` / `failed`) or until a timeout. Auth: app-token mode (despite the `b2b` in the name, this variant uses app-token auth — `ethora-app-select` + `ethora-auth-use-app`). Use `ethora-wait-broadcast-job-v2` if you need the B2B-with-explicit-appId path. Side effects: none server-side — read-only polling. Blocks this MCP call for up to `timeoutMs`. Idempotent: yes. Failure modes: 401/403 if not in app-token mode; 404 if the `jobId` is unknown. Returns: `{ done: true, state, job }` when finished, or `{ done: false, reason: "timeout", job }` on timeout.
| Name | Type | Req | Description |
|---|---|---|---|
| intervalMs | integer | — | Delay between status checks, in milliseconds. Default 1000. |
| jobId | string | yes | Job id returned by `ethora-chats-broadcast-v2`. |
| timeoutMs | integer | — | Maximum time to wait, in milliseconds. Default 60000. |
No output schema declared.
No examples provided.