Skip to main content
Glama

Server Details

Gnosari is a free AI chatbot for your website that collects data. Visitors chat, and every conversation becomes a typed, structured record: name, email, budget, timeline, whatever you asked for.

The Gnosari MCP server lets Claude, ChatGPT, Cursor or any MCP client create and run your Gnosari chatbots through natural conversation. Create Gnosaris, define what data to collect, share conversation links, and review the structured data your conversations capture, without leaving your AI chat. Everyt

Ownership verified

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
91.8% over 21 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 19 tools

Disambiguation5/5

Each tool targets a distinct resource or action: agent CRUD, sub-resource management (instructions, knowledge, traits, etc.), data collection records vs templates, links, webhooks, search, health, and URI checks. Overlaps like gnosari_update vs manage_* are explicitly disambiguated in descriptions, and collected-data vs extraction-status are clearly separated.

Naming Consistency4/5

All tools share the gnosari_ prefix and snake_case, and the manage_* family is consistent for sub-resources. However, the set mixes verb_noun (gnosari_create), noun (gnosari_collected_data), and action-style names, so it is not a single strict pattern.

Tool Count4/5

19 tools is slightly above the typical 3-15 range, but each tool covers a distinct, necessary capability for a full-featured agent management platform. There is no obvious redundancy; the count is justified by the breadth of the domain.

Completeness4/5

The surface covers agent lifecycle, all major sub-resources, data collection, links, webhooks, search, and health. Minor gaps exist, such as a dedicated list-agents tool (search can substitute) and no update operation for collected data records, but agents can work around these.

Available Tools

19 tools
gnosari_check_uriCheck URI AvailabilityA
Read-onlyIdempotent
Inspect

Check whether a URI is available for publishing an agent.

Verifies that the given URI slug is not already taken on the account's default domain (joina.chat). When the URI is taken, the response suggests a concrete available alternative so the agent can publish without guessing.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesURI slug to check availability for (e.g. 'my-agent')

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintsNoSuggestions for alternative URIs if taken
availableYesWhether the URI is available for use
current_gnosari_idNoID of the agent currently using this URI (if taken)
current_gnosari_nameNoName of the agent currently using this URI (if taken)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond annotations: it verifies against the account's default domain (joina.chat) and, when taken, surfaces a suggested available alternative in the response. It doesn't discuss rate limits or error modes, but this goes well beyond what annotations provide.

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 sentences, front-loaded with the core purpose, then scope (default domain), then the value-add on taken URIs. No filler, no repetition of the name or title.

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

Completeness5/5

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

The tool is simple (1 param, read-only) and has an output schema, so return values need not be explained. Annotations cover safety and idempotency, the schema covers the parameter, and the description adds the domain scope and the alternative-suggestion behavior, which is exactly the context an agent needs to call it and interpret the result.

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 coverage is 100% and the single parameter (uri) is documented in the schema with an example ('my-agent'). The description confirms the parameter is a URI slug but adds no format, length, character, or case-sensitivity details beyond what the schema provides. Baseline 3 is appropriate when the schema carries the parameter semantics.

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 ('Check') and resource ('URI availability'), with the concrete purpose ('for publishing an agent') and scope ('account's default domain joina.chat'). No sibling tool does URI availability checking, so it is clearly distinguishable from gnosari_create, gnosari_update, etc.

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?

The description implies when to use it: before publishing an agent, to avoid a taken URI slug. It does not name an alternative tool or state exclusions, but the workflow context (pre-publish validation) is clear. No explicit 'when not to use' is given, which is the only gap.

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

gnosari_collected_dataCollected DataA
Read-onlyIdempotent
Inspect

List, fetch, or summarise data your agents have collected from conversations.

action='list': Browse collected records (leads, feedback, candidates, orders). Filter by agent, template, date range, status, or search text.

action='get': Fetch ONE record's full detail by entity_id, including the per-attribute provenance (which conversation message + verbatim quote each value came from) and a session_excerpt of the surrounding conversation messages. Use this after 'list' to drill into a record.

action='stats': Dashboard totals -- counts by template, status breakdown, trends. Use group_by_agent=True for per-agent breakdown.

Tip: call with action='stats' first to see the big picture, then action='list' to find records, then action='get' for a single record's evidence.

Tip: for a full, filter-aware CSV download of collected data (all matching records, not a single page), use the REST endpoint GET /api/v1/entities/export instead of paging this list action.

Args: action: 'list' to browse records, 'get' for one record's detail, 'stats' for dashboard totals. agent_id: Filter by a specific agent. entity_id: Id of the record to fetch (required for action='get'). template_name: Filter by template name (list only). days: Relative date filter in days. Omit for all-time (no cutoff). status: Filter by data status (list only). search: Search within collected data attributes, agent name, or data type name (list only). skip: Pagination offset (list only). limit: Pagination limit (list only). include_facets: Include filter-aware per-type and per-status facet counts on the response (list only). group_by_agent: Per-agent stats breakdown (stats only).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoRelative date filter in days (e.g. 1=today, 7=last week, 30=last month). Omit for all-time (no date cutoff).
skipNoNumber of records to skip for pagination (list only)
limitNoMaximum records to return (list only, default: 10)
actionNoAction: 'list' to browse records, 'get' to fetch one record's full detail (incl. per-attribute provenance), 'stats' for dashboard totalslist
searchNoSearch within collected data attributes, the agent name, or the data type name (e.g. email, agent name, or 'leads'). List action only.
statusNoFilter by data status. List action only.
agent_idNoFilter by a specific agent to see only its collected data
entity_idNoId of a single collected record to fetch. Required for action='get'.
template_nameNoFilter by template name (e.g. 'candidates', 'leads'). List action only.
group_by_agentNoWhen true with action='stats', returns per-agent breakdown instead of totals
include_facetsNoInclude per-type and per-status facet counts (list action only)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/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 meaningful behavioral context beyond that: it describes what action='get' returns (per-attribute provenance with verbatim quotes and session_excerpt), what 'stats' returns (counts by template, status breakdown, trends), and the pagination model. It doesn't discuss auth or rate limits, which keeps it below 5.

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

Conciseness4/5

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

Front-loaded one-line purpose followed by per-action breakdowns and two tips. It is somewhat long and the Args section partially restates the schema descriptions, but each section is scannable and earns its place. Minor redundancy with the schema keeps it from a 5.

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

Completeness5/5

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

For an 11-parameter, multi-action tool with an output schema available, the description covers action semantics, workflow, return contents per action, and an alternative bulk path. Nothing an agent needs to select the right action or interpret results is missing.

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 coverage is 100%, so the baseline is 3. The description adds action-conditional semantics the schema does not (agent_id/entity_id roles per action, days meaning 'omit for all-time', and the action-conditional scope of template_name/status/search/skip/limit/include_facets). This exceeds what the structured fields convey.

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 (list/fetch/summarise) and resource (data agents collected from conversations), and breaks the tool into three clearly-scoped actions. It distinguishes itself from siblings like gnosari_collected_data_delete (which is destructive) and gnosari_manage_data_collection (which configures collection).

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

Usage Guidelines5/5

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

Explicitly routes between actions ('Use this after list to drill into a record'), gives a recommended workflow (stats -> list -> get), and names an alternative route (REST export endpoint) for bulk downloads when paging is unsuitable. This is unusually complete usage guidance.

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

gnosari_collected_data_deleteDelete Collected DataA
DestructiveIdempotent
Inspect

Permanently delete collected data records (leads, feedback, etc.).

When confirmed=False (default), returns a confirmation summary — the count of records that would be removed plus an irreversibility warning. NO deletion happens.

When confirmed=True, permanently deletes the records. Account-scoped: ids that do not belong to your account are silently skipped, so deleted reflects only your own rows. This cannot be undone.

Args: entity_ids: Ids of the records to delete. confirmed: Must be True to actually delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNoMust be True to delete. When False, returns a confirmation summary and warning — nothing is deleted
entity_idsYesIds of the collected records to permanently delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds substantial context beyond them: the dry-run confirmation flow, account-scoping where foreign ids are silently skipped, that 'deleted' counts only your rows, and that the action is irreversible. This is exactly the extra behavioral detail an agent needs before a destructive call.

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

Conciseness4/5

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

Front-loads the destructive nature and then the mode-dependent behavior in short, scannable paragraphs. The trailing Args block duplicates the schema descriptions, adding minor redundancy, but overall it is tight and well ordered.

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

Completeness5/5

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

With an output schema present, return values need not be described; the description covers everything else an agent needs — irreversibility, the confirmed gate, and account-scoped id behavior. Nothing material is missing for a destructive 2-parameter tool.

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 coverage is 100%, so both parameters are already documented, but the description adds meaning beyond the schema: it explains that entity_ids outside your account are silently skipped and how that affects the deleted count. The Args section otherwise restates the schema.

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 and resource ('Permanently delete collected data records') with examples (leads, feedback), so the agent knows exactly what is affected. It does not explicitly distinguish itself from the generic gnosari_delete sibling, leaving some routing ambiguity.

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?

Clearly explains the two operating modes: confirmed=False returns a confirmation summary with no deletion, confirmed=True performs the deletion. This tells the agent when to dry-run vs commit, though it never names an alternative tool for the read/list case (e.g. gnosari_collected_data).

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

gnosari_createCreate GnosariAInspect

Create a fully-configured, data-collecting AI agent in one call.

Welcome screen (empty_state_title + empty_state_description) and a data_collection template are REQUIRED — this produces a live-ready intake agent, not a bare shell. Optionally set a greeting, suggested prompts, and publish=True to go live immediately.

ALL inputs are validated before any write; on failure every error is reported at once and nothing is created. The agent, welcome config, data-collection template + assignment, and optional publish all commit atomically.

Raises: ValueError: If any input is invalid (all errors reported at once), or if publish=True and the URI is already taken (the message suggests an available alternative).

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoPublic URL slug for joina.chat/{uri} when publish=True. Defaults to a slug derived from the agent name
nameYesDisplay name for the agent, shown in chat and dashboard
publishNoPublish the agent live on joina.chat in the same call. Default False (PRIVATE)
greetingNoOptional opening message. When set, the conversation starts immediately with this message — empty_state_title, empty_state_description, and suggested_prompts will NOT be shown.
descriptionNoAgent purpose description for the dashboard
instructionsYesSystem prompt defining the agent's behavior and goals
data_collectionYesStructured data this agent extracts from conversations (required — it's the product). Define the template name, fields, and collection mode
empty_state_titleYesWelcome-screen title (required). Shown prominently before the user types, e.g. 'Apply to speak at DevConf'
suggested_promptsNoOptional clickable prompt buttons for the welcome screen. Max 8
empty_state_descriptionYesWelcome-screen supporting text (required). Below the title, e.g. 'Tell us about your talk and we'll be in touch'
interactive_buttons_enabledNoEnable interactive buttons: the agent may render tappable choice buttons in chat (fenced ```buttons blocks). Default False (off).
interactive_buttons_behaviorNoOptional guidance on WHEN to show buttons (e.g. 'only for yes/no confirmations'). Leave None for the canonical default behavior. Max 1500 characters. Has no effect unless interactive_buttons_enabled is True.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoAdvisory note, e.g. greeting hides the welcome screen
agentYesThe created agent
readinessYesConfiguration completeness with missing keys and next steps
published_urlNoPublic URL when published in the same call

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the annotations, the description discloses substantial behavioral traits: all inputs are validated before any write, every error is reported at once, nothing is created on failure, and all components commit atomically. It also documents the ValueError condition when publish=True and the URI is already taken, including that the message suggests an alternative.

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

Conciseness4/5

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

The description is front-loaded with the core action, then follows with requirements and behavioral guarantees in a logical order. It is efficient and avoids repetition, though the Raises section is slightly docstring-like and could be trimmed.

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 complex 12-parameter creation tool with nested objects and an existing output schema, the description covers the essential required inputs, atomic commit behavior, and error reporting. It does not explain all parameter interactions (e.g., greeting overriding empty_state is left to the schema), but the key behavioral context is present.

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 100%, so the schema already documents each parameter thoroughly, including defaults, enums, and nested field definitions. The description reinforces the required nature of welcome screen and data_collection but adds no new semantics beyond what the schema provides.

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 opens with a specific verb and resource: 'Create a fully-configured, data-collecting AI agent in one call.' It distinguishes itself from partial-management siblings by emphasizing all-in-one creation ('not a bare shell'), but it does not explicitly name an alternative such as gnosari_update or the gnosari_manage_* tools.

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?

It clearly states the context: use this to produce a live-ready intake agent, with welcome screen and data_collection template as required. It also notes when to set greeting (which suppresses the empty state) and when to use publish=True, but it does not describe when *not* to use this tool or point to specific alternatives.

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

gnosari_deleteDelete GnosariA
DestructiveIdempotent
Inspect

Delete an agent and all its associated data.

When confirmed=False (default), returns agent details and a warning. When confirmed=True, permanently deletes the agent, its public link, collected data, and all configuration. This cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNoMust be True to delete. When False, returns details and warning
gnosari_idYesID of the agent to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Annotations flag destructiveHint=true, but the description goes further by enumerating exactly what is destroyed (public link, collected data, configuration) and asserting irreversibility ('This cannot be undone'), which is precisely the extra context an agent needs before a destructive call.

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 short sentences, front-loaded with the effect, then the confirmation contract, then the consequence. No filler and no repetition of the tool title.

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

Completeness5/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 no explanation, and the description covers the mutation's scope, reversibility, and confirmation gating. Nothing an agent needs to call this safely is missing.

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 100% and the schema already explains both parameters including the default and meaning of confirmed. The description restates the confirmation semantics rather than adding syntax or edge-case detail, so the baseline 3 applies.

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 ('Delete an agent') and immediately qualifies the scope ('and all its associated data'), which cleanly separates it from gnosari_update, gnosari_create, and gnosari_collected_data_delete.

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?

Describes the two-step confirmation flow clearly: default confirmed=False returns details and a warning, confirmed=True performs the deletion. It doesn't name alternative siblings or state when deletion is inappropriate, but the dry-run guidance is strong enough that an agent knows how to sequence calls.

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

gnosari_embed_codeGenerate Embed CodeA
Read-onlyIdempotent
Inspect

Generate an HTML embed snippet for the Gnosari chat widget.

Returns a ready-to-paste HTML snippet that adds the chat widget to any website. The snippet carries the Gnosari's public URI -- the only value the widget loader resolves an agent by -- so the Gnosari must have a public URI before it can be embedded.

Only settings that differ from the loader's own defaults are printed, which keeps the snippet to the smallest thing that renders a working widget. Paste it right before the closing </body> tag of every page that should show the chat.

Raises: AgentNotFoundError: The Gnosari does not exist, or belongs to another account. AgentValidationError: The Gnosari has no public URI yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNoWhere the bubble appears on screen (bubble mode only)bottom-right
gnosari_idYesAgent ID to embed (same identifier used by all other gnosari_* tools)
display_modeNoWidget layout: bubble (floating button), sidebar (fixed panel), sidebar-push (pushes content), drawer (slides in)bubble
disable_themeNoIgnore the agent's configured theme and use bare default styling
primary_colorNoOverride the agent's theme color with a hex value (e.g. '#667eea')
sidebar_widthNoCustom panel width for sidebar modes (e.g. '420px')
sidebar_positionNoWhich side the panel opens from (sidebar/drawer modes only)right

Output Schema

ParametersJSON Schema
NameRequiredDescription
agent_idYesNumeric agent id the snippet was generated for (NOT part of the snippet)
agent_uriYesPublic agent URI embedded in the snippet as window.gnosariConfig.agentUri
embed_codeYesHTML embed snippet
display_modeYesWidget display mode used

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/ idempotent/ non-destructive/ closed-world, so the safety profile is covered. The description adds real value beyond them: only non-default settings are emitted, the snippet is minimal by design, and it enumerates the two failure modes (AgentNotFoundError for a missing or foreign agent, AgentValidationError for a missing public URI).

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

Conciseness4/5

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

Front-loaded with the core action, then organized into snippet behavior and a Raises block. Every sentence carries information, though the prose is slightly more expansive than needed for a tool this simple.

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?

With 7 params, one required, 100% schema coverage, rich annotations and an output schema, the description covers the remaining gaps well: the public-URI precondition, the output's minimality, and the error cases. A cross-reference to gnosari_check_uri is the only notable omission.

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 100% with enums and defaults documented for all 7 parameters, so the schema carries the semantics. The description only adds the meta-rule that defaults are suppressed in the output, which is not per-parameter detail; baseline 3 applies.

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+resource: 'Generate an HTML embed snippet for the Gnosari chat widget,' and the body clarifies it returns a ready-to-paste snippet. This is clearly distinguishable from setup siblings like gnosari_manage_appearance, which configures the widget rather than emitting embed code.

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?

Provides a concrete precondition ('the Gnosari must have a public URI before it can be embedded') and states where the output goes ('paste it right before the closing </body> tag of every page'). It does not, however, point at the obvious sibling gnosari_check_uri as the way to verify that precondition.

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

gnosari_extraction_statusExtraction StatusA
Read-onlyIdempotent
Inspect

Whether any conversation capture is still being extracted.

Answers "has the data landed yet?" without guessing from an empty list: a conversation's structured records appear a couple of minutes after the conversation ends, so an empty collected-data list means "still processing" while this reports processing=True, and "genuinely nothing was captured" once it reports processing=False.

Args: agent_id: Optional narrowing to one agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoNarrow the status to one agent's sessions. Omit for the whole account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
processingYesAt least one capture is still being extracted.
pending_countYesHow many captures are still being extracted.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint, non-destructive), the description discloses a non-obvious behavioral trait: structured records appear a couple of minutes after a conversation ends, so processing=True means 'still processing' and False means 'nothing was captured'. That latency/interpretation context is exactly what annotations cannot convey.

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

Conciseness4/5

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

Front-loaded with the core definition, then a compact explanation of why it beats guessing from an empty list. The trailing 'Args:' line largely duplicates the schema text, which is minor waste, but the rest of the prose earns its place.

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

Completeness5/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 the description covers purpose, the timing caveat, result interpretation, and the one parameter. Nothing an agent needs to call this correctly is missing.

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 100% and the single optional agent_id parameter is already documented in the schema. The description only restates it as 'Optional narrowing to one agent', adding no format, ID type, or default nuance beyond the structured field. Baseline 3 applies.

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 check ('whether any conversation capture is still being extracted') with a clear resource and scope. It also implicitly separates itself from gnosari_collected_data by explaining that an empty collected-data list is ambiguous while this tool resolves it. An agent can pick between the two without opening a 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?

Gives concrete when-to-use context: consult it to answer 'has the data landed yet?' rather than inferring from an empty list, and states the two result interpretations (still processing vs. genuinely nothing captured). It does not name the sibling tool (gnosari_collected_data) explicitly, but the condition that selects it is clear.

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

gnosari_getGet GnosariA
Read-onlyIdempotent
Inspect

Get a complete overview of an agent's configuration.

Returns identity, instructions preview, access settings, appearance, knowledge, traits, data collection, and a structured readiness block (percent + missing keys + next steps). Set include_instructions=True for the full instructions text.

ParametersJSON Schema
NameRequiredDescriptionDefault
gnosari_idYesID of the agent to retrieve
include_instructionsNoInclude full instructions text. Default False to reduce token cost

Output Schema

ParametersJSON Schema
NameRequiredDescription
uriNoPublic URL path segment
nameYesAgent display name
modelYesLLM model identifier; defaults to the deployment's GNOSARI_DEFAULT_MODEL when omitted at create
traitsNoPersonality traits assigned to this agent
sourcesNoKnowledge sources the agent can query
greetingNoInitial greeting message
theme_idNoChat theme ID
domain_idNoDomain ID
image_urlNoAgent avatar/image URL
readinessYesConfiguration completeness with machine-readable missing keys and prioritized next steps
templatesNoData-collection templates with collection mode
collectionNoPer-agent collection summary; null when no records
gnosari_idYesAgent ID
public_urlNoFull public URL (domain + uri)
descriptionNoAgent description
domain_nameNoDomain where the agent is published
temperatureYesLLM sampling temperature (0.0-2.0)
access_levelYesPUBLIC, PRIVATE, or PASSWORD_PROTECTED
instructionsNoFull instructions text (only when include_instructions=True)
reasoning_effortYesLLM reasoning effort: low, medium, or high
empty_state_titleNoTitle shown when chat history is empty
suggested_promptsNoPrompt suggestions for empty chat state
instructions_lengthYesCharacter count of the full instructions
instructions_previewYesFirst 200 characters of instructions
instructions_versionYesContent hash of the current instructions (16 hex chars). Pass it as expected_version on your next instructions write to detect concurrent changes.
empty_state_descriptionNoDescription shown when chat history is empty

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered structurally. The description adds real value beyond that by disclosing the response payload shape (identity, access settings, appearance, knowledge, traits, data collection) and the readiness block with percent/missing keys/next steps, which tells the agent what it can act on next.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core verb and resource, followed by the payload contents and the one optional flag. The middle enumeration is long but earns its place by setting response expectations; 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?

An output schema exists, so the description need not explain returns, yet it helpfully previews the sections and the readiness block. For a two-parameter read tool with full annotation coverage, nothing an agent needs to invoke it correctly is missing.

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 100%, so both parameters are already documented. The description's mention of include_instructions adds only the behavioral framing (full instructions text) already captured by the schema's 'Include full instructions text' description and default note. Baseline 3 is correct.

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 and resource ('Get a complete overview of an agent's configuration') and enumerates exactly what the overview contains, so the agent knows this is the read-side counterpart to the many gnosari_manage_* mutators. It stops short of naming any sibling, so the differentiation is inferable rather than explicit.

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 explicit when-to-use/when-not, but 'Set include_instructions=True for the full instructions text' implies the cheaper default path versus the full-text path, and the tool's position among manage_* siblings is deducible from the read-only framing. Guidance is implied, not stated.

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

gnosari_healthGnosari HealthA
Read-onlyIdempotent
Inspect

Health check for monitoring Gnosari Manager MCP server status.

Returns server health status, name, version, and configured API URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description. The description adds the return-content roster (status, name, version, API URL), but that duplicates the output schema and omits behavioral details such as whether it contacts the remote server or fails fast.

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?

Two short sentences with the purpose front-loaded and no filler. Nothing could be removed without losing information.

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?

With an output schema present, the return values need not be re-described, and annotations cover safety. For a zero-param, no-side-effect probe this is essentially complete, though it could note whether it performs a live network check versus a cached status.

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?

There are zero parameters, so the baseline is 4; the schema is empty and nothing needs explanation. The description correctly signals that the tool takes no input.

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+resource ('Health check') scoped to the Gnosari Manager MCP server, and names the returned fields. No sibling tool overlaps with a server-status probe, so it is trivially distinguishable.

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?

The phrase 'for monitoring Gnosari Manager MCP server status' gives clear context on when to call it (connectivity/liveness verification). It stops short of explicitly naming alternatives or when not to call it, but for a zero-argument probe no alternative is plausible.

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

gnosari_manage_accessManage Gnosari AccessAInspect

Configure an agent's access level and public URL.

Controls who can access the agent and how. PUBLIC makes the agent available at joina.chat/{uri}. PASSWORD_PROTECTED adds a password gate. PRIVATE restricts to API/embed access only. The publishing domain (joina.chat) is resolved automatically.

Raises: ValueError: If PASSWORD_PROTECTED without password, or password with non-PASSWORD_PROTECTED access level.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoURL path for joina.chat/{uri}. Must be unique. Required for PUBLIC/PASSWORD_PROTECTED
passwordNoPassword for PASSWORD_PROTECTED access. Required when access_level is PASSWORD_PROTECTED. Minimum 8 characters
gnosari_idYesID of the agent to update
access_levelYesWho can access: PUBLIC (anyone with link), PRIVATE (API/embed only), PASSWORD_PROTECTED (link with password gate)

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentYesAgent summary
readinessYesConfiguration completeness with missing keys and next steps

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover safety (readOnlyHint=false, destructiveHint=false) and idempotency, but the description adds valuable behavioral detail: the publishing domain is resolved automatically, and specific ValueError conditions for invalid password/access-level combinations. It stops short of describing permissions or side effects on existing settings.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and then efficiently details the access levels and error cases. Every sentence is informative, though the raises section could be slightly tightened without losing meaning.

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?

Given the existence of an output schema and rich annotations, the description covers the essential behavior: access level semantics, automatic domain resolution, and validation errors. It does not mention the need to check URI uniqueness via a sibling tool, but the schema already enforces uniqueness, so this is a minor gap.

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 100%, so the schema already documents all four parameters, including enum meanings and the uniqueness/format of uri. The description reiterates most of this (e.g., joina.chat/{uri}, password gate) without adding significant new parameter semantics, so the baseline of 3 is appropriate.

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 specific verb (Configure) and resource (agent's access level and public URL) and explains the three access levels, making the tool's purpose clear. However, it does not explicitly differentiate itself from siblings like gnosari_update or gnosari_manage_link, which could be confused with access management.

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?

The access level descriptions imply when each mode is appropriate (PUBLIC for open links, PASSWORD_PROTECTED for a gate, PRIVATE for API/embed only), which provides implicit usage guidance. But there is no explicit statement of when to choose this tool over alternatives, no prerequisites, and no exclusions.

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

gnosari_manage_appearanceManage Gnosari AppearanceAInspect

Configure an agent's visual appearance and welcome experience.

Two kinds of setting reach the chat:

  • CONTENT (per-agent) — greeting, empty-state title/description, and suggested prompts. Set via greeting / empty_state_* / suggested_prompts. greeting is an overlay: when set, the welcome screen (empty state + prompts) is configured but hidden.

  • VISUAL identity — pick ONE curated style_preset (color preset + background pattern). The preset is written to the agent's chat theme, REUSING the agent's existing theme row in place so repeated calls never create duplicate themes. See the style_preset schema for the full list and which agent purpose each fits.

Only provided fields are changed; at least one is required.

Raises: ValueError: If no appearance fields are provided. ChatThemeConfigurationError: If the resolved theme blob is invalid — the message names the exact offending key to fix.

ParametersJSON Schema
NameRequiredDescriptionDefault
greetingNoFirst message shown when a user opens a new chat. When set, the conversation starts immediately with this message — empty_state_title, empty_state_description, and suggested_prompts will NOT be shown.
image_urlNoAgent avatar/logo URL (max 500 chars). Must be publicly accessible
gnosari_idYesID of the agent to update
style_presetNoCurated appearance preset. Pick by the agent's purpose/brand: plain: No pattern, clean sky accent. Corporate/formal, or let content lead. clean-dots: Minimal sky-blue, faint dots. SaaS, B2B, dashboards. ocean-waves: Calm blue, flowing waves. Wellness, travel, spa, relaxed brands. forest-topo: Green, contour lines. Outdoors, sustainability, nature, eco. blueprint: Technical blue grid. Engineering, dev tools, architecture. graph-paper: Indigo grid. Education, finance, data, analytical tone. circuit: Teal circuit lines. Tech, hardware, AI, electronics. soft-bubbles: Warm rose, soft bubbles. Friendly, lifestyle, community, care. sunset-glow: Vibrant sunset, organic blobs. Creative, marketing, bold consumer. emerald-grid: Fresh emerald, subtle grid. Health, growth, productivity. confetti: Energetic fuchsia, confetti. Events, kids, playful/fun brands. mono-noise: Editorial violet, subtle grain. Media, publishing, premium/minimal.
empty_state_titleNoLarge title text for the welcome screen, displayed prominently
suggested_promptsNoClickable prompt buttons for the welcome screen. Replaces all existing. Max 8
empty_state_descriptionNoSupporting text below the title on the welcome screen

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoAdvisory note, e.g. greeting hides the welcome screen
greetingNoCurrent greeting message
image_urlNoCurrent agent avatar/image URL
readinessYesConfiguration completeness with missing keys and next steps
gnosari_idYesAgent ID
style_presetNoApplied style preset id
chat_theme_idNoCurrent chat theme ID
empty_state_titleNoCurrent empty state title
empty_state_descriptionNoCurrent empty state description
suggested_prompts_countYesNumber of suggested prompts configured

TDQS

A4.6/5.0
Behavior5/5

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

With annotations covering the safety profile, the description still adds substantial behavioral context: partial-update semantics ('only provided fields are changed'), the greeting-hides-welcome-screen overlay rule, the fact that suggested_prompts replaces all existing entries, theme-row reuse so repeated calls never duplicate themes, and the two failure modes with the note that ChatThemeConfigurationError names the offending key. Note a mild tension with idempotentHint=false, since a field-set operation that reuses the theme row in place reads as effectively idempotent, but the description itself is accurate and not misleading.

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

Conciseness4/5

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

Front-loaded with the purpose, then bulleted by setting family, with the Raises block last — a logical order an agent can scan. It is somewhat verbose and restates a few things the schema already says (e.g. the greeting overlay), which keeps it out of the 5 range.

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

Completeness5/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 no explanation, and annotations cover the safety profile. For a 7-parameter mutation tool the description still supplies the missing pieces: partial-update behavior, the one-of-many requirement, replacement semantics, overlay precedence, and named error conditions.

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 100%, so the baseline is 3 and the schema already carries per-field detail (including the full style_preset enum rationale). The description still earns above baseline by grouping parameters into the CONTENT vs VISUAL mental model and by stating the partial-update contract, which the schema does not express.

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 opens with a concrete verb+resource ('Configure an agent's visual appearance and welcome experience') and then partitions the surface into CONTENT vs VISUAL identity, which cleanly separates it from adjacent siblings like gnosari_manage_instructions, gnosari_manage_traits, and gnosari_manage_data_collection. An agent can tell what this tool owns without opening the 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?

It gives real conditional guidance: 'pick ONE curated style_preset', 'greeting is an overlay: when set, the welcome screen ... is configured but hidden', and 'Only provided fields are changed; at least one is required'. What is missing is explicit routing against alternatives (e.g. when to use this vs gnosari_update), so it stops short of a 5.

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

gnosari_manage_data_collectionManage Data CollectionAInspect

Create, list, get, update, delete, assign, or remove data collection templates.

Templates define what structured data agents extract from conversations. Also controls whether visitors can upload files (photos/PDFs) for the agent to read — pass enable_attachments (requires gnosari_id).

Assigning a template (action='assign', or create with gnosari_id) turns data collection ON for that agent. Removing a template never turns it off — the enable state is the owner's setting, changed only through the agent's own configuration.

Identity: pass identity_field (create/update) to name the field that holds the person's display name. On update, omitted fields are preserved (preserve-on-omit); to drop the designation pass clear_fields=["identity_field"] — never an empty string. Listing a field in clear_fields AND passing it as a value is rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTemplate name (create/update)
actionYesAction to perform on data collection templates
fieldsNoTemplate fields (create/update)
searchNoSearch query (list)
gnosari_idNoAgent ID (assign/remove, or create+assign). Also required when setting enable_attachments.
descriptionNoTemplate description (create/update)
template_idNoTemplate ID (get/update/delete/assign/remove)
clear_fieldsNoFields to reset to their default (NULL) on update. Currently supports 'identity_field' — clearing it drops the identity designation and reverts to server heuristic resolution. Passing a field here AND as a value param is an error.
custom_promptNoCustom collection flow prompt. Required when collection_mode='guided'; ignored otherwise
identity_fieldNoName of the field to use as the person's identity/display name (create/update). Must name one of this template's fields. Server-side identity resolution uses it to compute display_name on collected records. On update, omit to leave unchanged; to remove the designation pass 'identity_field' in clear_fields (never an empty string).
include_systemNoInclude system templates (list)
collection_modeNoHow the agent collects data. passive: Extract only what users volunteer. Never asks. opportunistic: Extract + nudge when contextually natural. active: Proactively ask for missing required fields until complete. Default for intake/forms agents — use unless you have a reason not to. guided: Fully custom flow driven by custom_prompt (required). Rarely needed — the other modes cover almost every case.
enable_attachmentsNoTurn file uploads on/off for this agent's chat (per-agent capability, requires gnosari_id). true = visitors can attach a photo or PDF and the agent reads it and extracts the data you collect — recommended when the agent collects data users would otherwise type or send separately. false = uploads off. null (default) = leave unchanged. Ask the user whether they want visitors to be able to upload documents before setting this.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond annotations: discloses preserve-on-omit on update, that removing never disables collection, that identity_field must name one of the template's fields, and that identity_field cannot be set alongside clear_fields. These are non-obvious behavioral rules an agent needs to call correctly.

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

Conciseness4/5

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

Front-loads the action list then explains templates and their semantics. A few sentences are long, but each carries distinct information. Slightly dense but no clear filler.

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

Completeness5/5

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

With 13 parameters, an output schema, and no nested objects, the description covers all the non-obvious behaviors (preserve-on-omit, assign vs remove, identity field handling) that the schema alone doesn't convey. Very complete.

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

Parameters5/5

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

Schema coverage is 100% so baseline is 3, but the description adds real meaning: the assign semantics of gnosari_id, the identity_field/clear_fields interaction rule, and the required-gnosari_id constraint for enable_attachments. This goes beyond restating schema.

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 set (create, list, get, update, delete, assign, remove) and resource (data collection templates), and explains what templates do. Sibling tools like gnosari_manage_knowledge and gnosari_manage_traits are in the same family but the description doesn't explicitly distinguish itself from them.

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?

Provides clear context: assign turns collection ON, remove never turns it off, and the enable state is owner-controlled. Explains the clear_fields vs value-param error condition. Does not name alternative tools explicitly, but the when-to-use semantics are well-covered.

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

gnosari_manage_instructionsManage Gnosari InstructionsAInspect

Update an agent's system instructions.

Prefer action="edit" with anchored edits for any change to existing text: only the changed span is sent, everything else stays byte-identical, and the response's applied[].excerpt shows what landed so no second read is needed. Use replace only to write a whole new instruction set, append/prepend to add at either end.

The usual flow is gnosari_create → gnosari_get (read instructions_version) → this tool with expected_version set; every response returns the new instructions_version for the next call. The agent's behavior is defined entirely by its instructions, so craft them carefully.

Raises: ValueError: VALIDATION_ERROR for a malformed call, ANCHOR_NOT_FOUND or ANCHOR_AMBIGUOUS for an unusable anchor, CONFLICT for a stale expected_version, or a wizard-guardrail rejection.

ParametersJSON Schema
NameRequiredDescriptionDefault
editsNoAnchored partial edits for action 'edit' — prefer this over 'content' for any change to existing text. Each edit is {op, old, new}, where op is replace/insert_before/insert_after/delete/append/prepend. 'old' is matched exactly, whitespace-significant, and must occur exactly once unless replace_all=True — if it is ambiguous, widen it with surrounding lines. Edits apply in order, all-or-nothing: any failing edit writes nothing and names its index. Never re-send the whole text to change part of it. Maximum 20 per call
actionYesHow to apply the change: 'edit' applies anchored partial edits (prefer it for any change to existing text), 'replace' overwrites everything, 'append' adds to the end, 'prepend' adds to the beginning
contentNoWhole-text payload for action 'replace', 'append' or 'prepend'. Never combine with 'edits'. To CLEAR instructions call gnosari_update(clear_fields=["instructions"]) — an empty string is refused
gnosari_idYesID of the agent to update
confirm_replaceNoDeliberate-overwrite flag. Required when action='replace' would discard more than 2000 stored characters; ignored otherwise
expected_versionNoThe instructions_version from your last gnosari_get (or from the previous write's response). Strongly recommended with 'edits': if the stored text changed underneath you the call is refused with CONFLICT and nothing is written

Output Schema

ParametersJSON Schema
NameRequiredDescription
appliedNoOne entry per anchored edit, in submitted order, each with an excerpt of the change — verify the write from these instead of re-reading. Empty for action='replace', which is not anchored
previewYesFirst 200 characters of the instructions
readinessYesConfiguration completeness with machine-readable missing keys and prioritized next steps
gnosari_idYesAgent ID
action_performedYesWhat was done: 'replace', 'append', 'prepend', or 'edit'
instructions_lengthYesCharacter count of the instructions after the operation
instructions_versionYesContent hash of the stored instructions AFTER this write. Pass it as the next call's expected_version to guarantee nobody changed the text underneath you

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the safety flags (non-readonly, non-destructive, non-idempotent). The description adds real behavior beyond them: edits are all-or-nothing with failing-edit index reporting, anchors are byte-exact and must be unique, a confirm_replace guard fires past 2000 stored characters, and stale expected_version yields CONFLICT with nothing written. This is exactly the extra context annotations cannot carry.

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

Conciseness4/5

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

The critical guidance (prefer edit, anchored spans) is front-loaded before the workflow and error notes. The Raises block earns its place by naming the failure codes an agent must handle, though the prose is dense enough that a tighter edit would help.

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

Completeness5/5

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

With six params, a nested edit object, a rich output schema, and a stateful version contract, this is a complex tool — and the description covers the workflow, mutation semantics, conflict behavior, and error surface. Return values are left to the output schema, as appropriate.

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 coverage is 100%, so the baseline is 3 and the schema does most of the work. The description still adds value over it: the preference for edits over content, the prohibition on combining them, the 20-edit cap, and the version-threading contract. It stops short of explaining every field, hence not a 5.

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 upfront ("Update an agent's system instructions") and immediately distinguishes its modes (edit/replace/append/prepend) from the sibling gnosari_update used for clearing. An agent can tell exactly what this tool does and which sibling handles the adjacent case.

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

Usage Guidelines5/5

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

Gives explicit when-to-use routing: prefer 'edit' for changes to existing text, 'replace' only for a whole new instruction set, append/prepend for additive changes, and gnosari_update(clear_fields) for clearing. It also spells out the create → get → manage flow with expected_version, leaving nothing to inference.

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

gnosari_manage_knowledgeManage KnowledgeCInspect

Create, list, get, update, delete, assign, or remove knowledge sources.

Knowledge sources are documents or websites that give agents expertise.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSource URL (create)
nameNoSource name (create/update)
typeNoContent type (create). Omit or use 'website' for whole-site ingestion: the URL is auto-resolved (probes for a sitemap, else falls back to discovery). 'sitemap' or 'discovery' pick that loader explicitly and are never probed. For a single page only, set single_page=true
actionYesAction to perform on knowledge sources
searchNoSearch query (list)
statusNoFilter by loading status (list). 'partial' = the load stopped short but its documents ARE searchable; 'failed' means nothing usable was indexed.
source_idNoSource ID (get/update/delete)
gnosari_idNoAgent ID (assign/remove, or create+assign)
source_idsNoSource IDs to assign/remove
single_pageNoOpt out of whole-site ingestion (create): load ONLY the given URL as a single page instead of crawling the whole site. Applies to omitted/'website' type; combining it with an explicit 'sitemap'/'discovery' type is a conflict

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false, but the description adds nothing beyond these – it doesn't say what delete destroys, whether removal from an agent is reversible, or that assign/remove mutate which agents can use a source. For a multi-action tool with a destructive verb (delete) present, the description's silence is a notable gap.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action-set and resource. No filler. The second sentence clarifies the resource without padding.

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

Completeness3/5

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

Given 10 parameters, an output schema, and rich annotations, the description is adequate but thin. It omits when-to-use, the semantics of assign/remove versus create+assign, and any mutation caveats – leaving the agent to infer behavior from the schema alone.

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 100%, so the schema already documents all 10 parameters thoroughly, including the nuanced type/single_page interaction. The description adds no parameter-level detail beyond the action list, so baseline 3 is appropriate.

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 names a specific resource (knowledge sources) and enumerates all seven actions (create, list, get, update, delete, assign, remove) clearly. This distinguishes it from sibling managers like gnosari_manage_instructions or gnosari_manage_traits. It doesn't differentiate its scope from generic CRUD siblings, but the resource is well-defined.

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

Usage Guidelines2/5

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

The description lists action verbs but provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about the tools that consume knowledge sources. The generic 'Manage Knowledge' scope overlaps with other sibling tools, yet nothing routes the agent between them.

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

gnosari_manage_traitsManage TraitsAInspect

Create, list, get, update, delete, assign, or remove personality traits.

Traits shape how an agent communicates. Use assign/remove to link traits to an agent.

To change a trait's behavioral instructions, prefer action="update" with anchored instructions_edits: only the changed span is sent, everything else stays byte-identical, and the response's applied[].excerpt shows what landed so no second read is needed. Pass whole instructions only to write a completely new set.

The usual flow is action="get" (read instructions_version) → action="update" with expected_version set; every read and write returns the instructions_version for the next call.

Raises: ValueError: VALIDATION_ERROR for a malformed call, ANCHOR_NOT_FOUND or ANCHOR_AMBIGUOUS for an unusable anchor, or CONFLICT for a stale expected_version.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTrait name (create/update)
actionYesAction to perform on traits
searchNoSearch query (list)
weightNoInfluence weight 0.0-10.0 (create/update)
trait_idNoTrait ID (get/update/delete)
trait_idsNoTrait IDs to assign/remove
gnosari_idNoAgent ID (assign/remove, or create+assign)
is_defaultNoAuto-assign this trait to newly created agents in this account (create/update)
descriptionNoTrait description (create/update)
instructionsNoBehavioral instructions (create/update). On update this REPLACES the whole text — prefer instructions_edits for any change to existing instructions. Never combine the two. A trait's instructions are mandatory: an empty string is refused
confirm_replaceNoDeliberate-overwrite flag. Required when passing 'instructions' would discard more than 2000 stored characters; ignored otherwise
expected_versionNoThe instructions_version from your last action="get" (or from the previous update response). Strongly recommended with instructions_edits: if the stored text changed underneath you the call is refused with CONFLICT and nothing is written
instructions_editsNoAnchored partial edits to a trait's instructions (update) — prefer this over 'instructions' for any change to existing text. Each edit is {op, old, new}, where op is replace/insert_before/insert_after/delete/append/prepend. 'old' is matched exactly, whitespace-significant, and must occur exactly once unless replace_all=True — if it is ambiguous, widen it with surrounding lines. Edits apply in order, all-or-nothing: any failing edit writes nothing and names its index. Never re-send the whole text to change part of it. Maximum 20 per call

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only assert the mutation profile (readOnlyHint=false, destructiveHint=false, non-idempotent), which is actually somewhat under-informative for a tool with delete/remove actions. The description compensates with concrete behavior: anchored edits are all-or-nothing and name the failing index, a stale expected_version triggers CONFLICT with nothing written, and the full-text path can demand confirm_replace past 2000 characters. It stops short of describing exactly what assign/remove or delete do to already-assigned agents.

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

Conciseness4/5

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

Front-loaded with the verb list, then progressive disclosure through the preferred edit flow and the error taxonomy. The 'Raises:' block is useful but slightly verbose relative to the rest, and the multi-line prologue costs a little density.

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

Completeness5/5

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

For a 13-parameter, 7-action tool with an output schema and rich annotations, the description covers the concurrency contract, the destructive-write guard, the error surface, and the recommended workflow. An agent could call this correctly on the first attempt without opening the schema for anything except the edit sub-fields, which the schema already documents.

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 coverage is already 100%, so the schema documents every parameter including the nested edit shape. The description still adds semantics the schema can't: the get→update→expected_version loop, the preference for instructions_edits over instructions, and the meaning of CONFLICT. It doesn't add much beyond the schema for the simpler action-scoped parameters, which caps it below 5.

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 opens with an explicit enumeration of the CRUD-plus-assign verb set and the resource ('personality traits'), which is specific and distinguishable from siblings like gnosari_manage_instructions and gnosari_manage_knowledge. It also explains what a trait actually is ('shape how an agent communicates'), which no structured field conveys.

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

Usage Guidelines5/5

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

It gives an explicit workflow (get → update with expected_version), names the preferred action for changing existing instructions (update with instructions_edits rather than whole instructions), and states the condition for the fallback ('Pass whole instructions only to write a completely new set'). That is when-to-use plus when-not, which is rare.

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

gnosari_manage_webhooksManage Webhook DestinationsA
Destructive
Inspect

Manage outbound webhook destinations for the account.

Actions: list, get, create, update, activate, deactivate, delete, deliveries (the paginated, newest-first attempt history with outcome and failure reason per attempt -- use it to diagnose failures).

Event kinds are returned with a display name and one-line description each, so they can be reported to the user without interpreting raw topic ids.

The signing secret is NEVER returned by this tool and cannot be read through it -- view and copy it in the dashboard destination view at /settings/webhooks/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoDelivery endpoint address, http(s) (create/update). Unsafe addresses (internal networks, unsupported schemes) are refused by the delivery-core URL guard with the reason relayed
limitNoPage size for deliveries (default 20, max 100)
actionYesAction to perform on webhook destinations
activeNoSet the active flag directly (update only; prefer the activate/deactivate actions)
offsetNoPagination offset for deliveries
statusNoFilter delivery history by outcome (deliveries)
confirmedNoMust be true to actually delete (delete only). Ask the user to confirm first
webhook_idNoDestination ID (get/update/activate/deactivate/delete/deliveries)
event_kindsNoTopic ids to subscribe to (create/update), e.g. ['data.collected', 'data.updated']
include_provenanceNoInclude verbatim conversation quotes and message references in deliveries to this destination (create/update). Default false; omit on update to leave unchanged

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered; the description adds real value beyond them by disclosing that the signing secret is never returned, that event kinds come back with display names and descriptions, and that deliveries are paginated newest-first with outcome and failure reason. It stops short of stating that delete is irreversible or that activate/deactivate are the preferred path, which the schema covers.

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

Conciseness4/5

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

Front-loads the purpose, then the action list, then two short clarifying notes; every sentence carries information. The event-kinds sentence is slightly tangential to selection but still useful, keeping it just under a perfect score.

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

Completeness5/5

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

For a 10-parameter multi-action tool with full schema coverage and an output schema, the description covers the action semantics, the secret-access limitation, and the diagnostic workflow without needing to restate return values. An agent has everything required to pick the right action and call it correctly.

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 coverage is 100% (baseline 3), and the description still adds meaning: it explains what the deliveries history contains and how it should be used, and clarifies that event-kind values are human-readable topics rather than raw ids. It does not touch the confirmed/active parameters, but those are fully documented in the schema.

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?

Opens with a specific verb+resource ("Manage outbound webhook destinations for the account") and then enumerates every action the single tool supports, so an agent knows exactly what surface it covers. It is clearly distinguishable from siblings like gnosari_manage_access, gnosari_manage_appearance, and gnosari_manage_data_collection.

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?

Gives action-level guidance (deliveries is for diagnosing failures; the secret cannot be read here and must be fetched from the dashboard URL) which steers behavior. It does not, however, state when to prefer this tool over sibling management tools, but those cover unrelated resources so no exclusion is strictly needed.

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

gnosari_updateUpdate GnosariAInspect

Update an agent's identity and model settings.

Only modifies provided fields. For instructions, access, appearance, knowledge, traits, and data collection, use dedicated tools. At least one field must be provided.

Interactive buttons: set interactive_buttons_enabled to turn the feature on/off, and interactive_buttons_behavior to customize WHEN the agent shows buttons. To drop a custom behavior and fall back to the canonical default, pass clear_fields=["interactive_buttons_behavior"] (never send an empty string). Supplying that field in clear_fields AND as interactive_buttons_behavior at the same time is rejected.

Instructions are managed by gnosari_manage_instructions. Clearing them is the single exception that lives here: pass clear_fields=["instructions"] to empty the agent's system prompt.

Raises: ValueError: If no update fields are provided, or if a field appears in both clear_fields and as a value param.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew display name
modelNoLLM model identifier; defaults to the deployment's GNOSARI_DEFAULT_MODEL when omitted
gnosari_idYesID of the agent to update
descriptionNoNew purpose description
temperatureNoCreativity 0.0-2.0
clear_fieldsNoOptional fields to reset to their default (NULL). 'interactive_buttons_behavior' — clearing it reverts the agent to the canonical default buttons behavior. 'instructions' — clearing it empties the agent's system prompt; instructions are otherwise managed by gnosari_manage_instructions, never by this tool. Passing a field here AND as a value param is an error.
reasoning_effortNoDepth: 'low', 'medium', 'high'
interactive_buttons_enabledNoEnable/disable interactive choice buttons in chat (fenced ```buttons blocks). Pass False to turn off.
interactive_buttons_behaviorNoGuidance on WHEN to show buttons (max 1500 chars). To reset to the canonical default, pass 'interactive_buttons_behavior' in clear_fields instead of a value here.

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentYesAgent summary
readinessYesConfiguration completeness with missing keys and next steps

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false; the description adds real value beyond that by disclosing the partial-update semantics ('Only modifies provided fields'), the mutual-exclusion rule between clear_fields and value params, the empty-string prohibition, and the ValueError conditions. It stops short of stating reversibility or permission requirements, but the behavioral burden is largely carried.

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

Conciseness4/5

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

Front-loaded with the primary purpose, then a scoping sentence, then focused paragraphs on the fiddly interactive_buttons and instructions behavior. Well-organized, though the interactive-buttons paragraph is dense and could be tightened.

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

Completeness5/5

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

For a 9-param mutation tool that is part of a large sibling family, the description covers partial-update semantics, the exception routing for instructions, the clear_fields mechanism, and error conditions. An output schema exists, so return values need not be explained. Nothing material is missing.

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 coverage is 100%, so baseline is 3, but the description adds semantics the schema cannot express: the clear_fields/param mutual-exclusion rule, that clear_fields reverts to canonical defaults vs NULL, and the prohibition on empty strings for interactive_buttons_behavior. These clarify non-obvious interaction between parameters, exceeding the schema's per-field text.

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+resource ('Update an agent's identity and model settings') and explicitly carves out the sibling-managed domains (instructions, access, appearance, knowledge, traits, data collection). An agent can distinguish this from gnosari_manage_instructions or gnosari_manage_traits without opening a schema.

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

Usage Guidelines5/5

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

Explicitly names the alternative tools for the excluded domains ('use dedicated tools', 'managed by gnosari_manage_instructions'), states the precondition that at least one field must be provided, and documents the single exception where instructions clearing lives here. When-to-use and when-not-to-use are both fully covered.

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. 19 tool updates
    • First observedgnosari_check_uri
    • First observedgnosari_collected_data
    • First observedgnosari_collected_data_delete
    • First observedgnosari_create
    • First observedgnosari_delete
    • First observedgnosari_embed_code
    • First observedgnosari_extraction_status
    • First observedgnosari_get
    • First observedgnosari_health
    • First observedgnosari_manage_access
    • First observedgnosari_manage_appearance
    • First observedgnosari_manage_data_collection
    • First observedgnosari_manage_instructions
    • First observedgnosari_manage_knowledge
    • First observedgnosari_manage_link
    • First observedgnosari_manage_traits
    • First observedgnosari_manage_webhooks
    • First observedgnosari_search
    • First observedgnosari_update

Publisher details

Operator
Neomanex · Publisher source
Operator website
https://neomanex.com
Vendor relationship
First-party
Trust center
Not available
Restrictions
Not applicable

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    22 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources