Skip to main content
Glama
afferens

@afferens/mcp-server

by afferens

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: demo for raw data, perceive for querying, actuate for hardware commands, verify for freshness check, ingest for pushing data. No overlap.

    Naming Consistency5/5

    All tool names follow a consistent pattern: 'afferens_' + a verb (demo, perceive, actuate, verify, ingest). Perfectly predictable.

    Tool Count5/5

    With 5 tools covering demo, perception, actuation, verification, and ingestion, the count is well-scoped for a sensory data platform. Not too sparse or bloated.

    Completeness5/5

    The tool set provides a complete lifecycle: demo, query, send data, actuate hardware, and verify freshness. No obvious gaps for the domain of physical perception.

  • Average 4.1/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    With no annotations, the description must disclose all behavioral traits. It explains the double fetch, delay, and hash check, but omits side effects (e.g., read-only nature), error handling, or operational constraints (e.g., feed availability). Some transparency is provided, but gaps remain.

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

    Conciseness5/5

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

    The description is extremely concise: two sentences that front-load the action and the use case. Every sentence earns its place with no wasted words.

    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?

    The tool has 3 optional parameters and no output schema. The description explains what is returned (raw payloads + hash freshness check), but does not detail the output format or structure, leaving some incompleteness for an agent invoking the tool.

    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% with well-described parameters (limit, wait_ms, modality). The description adds no extra parameter meaning, so it meets the baseline of 3 without adding value beyond 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?

    The description clearly states the tool fetches the live perception feed twice with a delay, returns both raw payloads, and includes a hash-based freshness check. It distinguishes from siblings by specifying the double probe and verification purpose, setting it apart from single perception or demo 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?

    The description explicitly says 'when you need to show the feed is not placeholder data,' providing clear context. However, it does not mention when not to use this tool (e.g., for single-shot reads) or compare to siblings like afferens_perceive, missing some exclusions.

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

  • Behavior3/5

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

    With no annotations, the description bears the full burden of behavioral disclosure. It reveals that an API key is required and that data becomes queryable via afferens_perceive. However, it does not disclose potential side effects, error behavior, idempotency, or any constraints beyond the key requirement.

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

    Conciseness5/5

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

    The description is remarkably concise: four sentences, each serving a distinct purpose. The first sentence states the primary action, the second gives usage context, the third explains downstream availability, and the fourth notes a prerequisite. No wasted words.

    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 absence of an output schema, the description appropriately explains that ingested data becomes queryable via afferens_perceive, which addresses the post-condition. However, it lacks guidance on the data parameter's expected structure beyond the schema's brief note, and it does not mention the response format or error cases.

    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?

    All three parameters are described in the input schema with adequate detail (100% coverage). The tool description adds no additional semantic information about the parameters beyond what the schema already provides, earning a baseline score of 3.

    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 clearly states the action ('Push live sensor data into the Afferens sensory layer') and specifies the resource ('Afferens sensory layer'). It distinguishes from siblings by focusing on ingesting real-time perception events, while siblings like afferens_perceive are for querying and afferens_actuate for acting.

    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 explicitly states when to use this tool: 'when your AI agent is connected to physical hardware and wants to contribute real-time perception events.' It does not explicitly mention when not to use it or provide alternative tools, but the context of contributing data versus querying (afferens_perceive) is implied.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses the read-only nature (querying events) and mentions real-time updates, but does not cover rate limits, pagination, or error handling. Additional context like token usage for the free tier is helpful.

    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 sentences, front-loaded with the purpose, followed by essential usage context (API key, free tier). No superfluous words; every sentence adds value.

    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 no output schema, the description outlines the return types (object detections, positions, etc.) but lacks structure details (e.g., field names). It covers key constraints (API key, token limit) and parameter options. A bit more on error handling or expected response format would improve completeness.

    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?

    Both parameters are fully described in the schema (coverage 100%). The description adds value by explaining what each modality returns (e.g., 'object detections, positions, sounds'), providing semantic context beyond the enum labels. However, it does not detail default behavior for omitted parameters.

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

    Purpose5/5

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

    The description clearly states the tool's action ('Query live physical perception events') and resource ('sensory layer'), listing specific data types returned. It distinguishes from sibling tools like 'afferens_actuate' by focusing on perception rather than action.

    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 description explains the API key requirement and free tier limitations, which is useful for setup. However, it does not explicitly guide when to use this tool versus siblings (e.g., when to use 'afferens_ingest' instead) or state when not to use it.

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

  • Behavior3/5

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

    No annotations provided, so description carries full burden. It states real-time, free, no API key, and demo purpose. Does not explicitly declare read-only or non-destructive nature, but context implies safety. Adequate but not fully exhaustive.

    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, each adding distinct value: what the tool does, usage context, and cost. No fluff, well front-loaded.

    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 no parameters, no output schema, and no annotations, the description is nearly complete for a demo tool. It explains inputs (none), purpose, and usage. Could mention limits or that it's sample data, but not required.

    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?

    No parameters exist; baseline is 4. Description adds value by explaining what data will be returned (6 modalities, real-time), which is meaningful beyond 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?

    Description clearly states the verb 'Get', the resource 'real-time physical perception data', and enumerates all 6 sensory modalities. It distinguishes from siblings by positioning itself as a demo tool.

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

    Usage Guidelines4/5

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

    Explicitly says 'Use this to demonstrate what live sensor data looks like before your AI agent is fully wired up' and notes no API key required. Clearly indicates demo usage context, though doesn't explicitly state alternatives.

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

  • Behavior4/5

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

    With no annotations, the description reveals important behaviors: cost of 5 Sense Tokens, required AFFERENS_API_KEY, and the range of commands including destructive ones like SHUTDOWN_NODE. It could add more on side effects or idempotency.

    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 sentences packed with essential information—no wasted words, well-structured and front-loaded.

    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 no output schema, the description adequately covers purpose, actions, cost, and auth. It could mention response format or errors, but lack of output schema lowers expectation slightly.

    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 value by providing examples for the parameters parameter (e.g., coordinates for MOVE_TO), helping the agent understand usage.

    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 clearly states the tool sends commands to a physical Afferens node and lists specific actions (capture frame, sound alarm, etc.), distinguishing it from sibling tools like afferens_perceive or afferens_demo.

    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 explains when to use (trigger hardware actions) and mentions costs and API key requirements. It does not explicitly state when not to use, but the context of siblings makes it clear.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

afferens-mcp MCP server

Copy to your README.md:

Score Badge

afferens-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/afferens/afferens-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server