@afferens/mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@afferens/mcp-serverwhat are the latest object detections?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@afferens/mcp-server
MCP server for Afferens - real-time physical perception for AI agents.
Use it from local MCP clients over stdio or remote/hosted clients over streamable HTTP. It gives any MCP-compatible AI assistant live sensor data: object detections, positions, sounds, environmental readings, chemical traces, and node health.
Tools
Tool | Auth | Description |
| None | Live perception data across all 6 modalities. Free, no key needed. |
| API key | Query live events by modality with filtering and limits. |
| API key | Fetch the feed twice and return a proof bundle with headers, age, and a freshness verdict. |
Modalities: VISION / SPATIAL / ACOUSTIC / ENVIRONMENTAL / MOLECULAR / INTEROCEPTION
Related MCP server: Hayba
Quick Start
Free tier: 10,000 tokens, no card required. Get your key at afferens.com.
Local MCP Clients
claude mcp add afferens -- npx -y @afferens/mcp-serverThen set your key:
claude mcp add afferens -e AFFERENS_API_KEY=YOUR_KEY -- npx -y @afferens/mcp-serverThis stdio setup works for Claude Code, Claude Desktop, Cursor, and Windsurf.
Remote MCP Clients
For hosted or browser-based clients, run Afferens in HTTP mode and point the client at the /mcp endpoint:
AFFERENS_TRANSPORT=http AFFERENS_PORT=8790 AFFERENS_API_KEY=YOUR_KEY node dist/index.jsThen register the endpoint:
{
"afferens": {
"url": "http://127.0.0.1:8790/mcp",
"bearer_token_env_var": "AFFERENS_API_KEY"
}
}Claude Desktop / Cursor / Windsurf
Add to your MCP config file:
{
"mcpServers": {
"afferens": {
"command": "npx",
"args": ["-y", "@afferens/mcp-server"],
"env": {
"AFFERENS_API_KEY": "YOUR_KEY"
}
}
}
}Config file locations:
Claude Desktop (Mac):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonCursor:
.cursor/mcp.jsonin your project rootWindsurf:
~/.codeium/windsurf/mcp_config.json
Try it without a key
{
"mcpServers": {
"afferens": {
"command": "npx",
"args": ["-y", "@afferens/mcp-server"]
}
}
}Call afferens_demo - no API key needed.
Usage
Once connected, your AI agent can call:
afferens_perceive({ modality: "VISION", limit: 5 })Returns structured perception events your agent can reason over and act on.
For demo verification:
afferens_verify({ modality: "VISION", limit: 3, wait_ms: 2000 })Returns two raw snapshots plus headers, age, and a hash check so you can show whether the feed is live, stale, or unchanged.
Links
afferens.com - sign up, dashboard, API docs
License
MIT
Available Tools
5 toolsafferens_actuateA
Send a command to a physical Afferens node. Use this to trigger actions on hardware — capture a camera frame, sound an alarm, move to coordinates, rotate a camera, lock or unlock, adjust a sensor, or shut down a node. Costs 5 Sense Tokens per command. Requires AFFERENS_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | No | Optional command-specific parameters (e.g. coordinates for MOVE_TO, angle for ROTATE_CAMERA). | |
| command_type | Yes | The command to execute on the target node. | |
| target_node_id | Yes | ID of the node to command (e.g. IPHONE-IOS-01, CAM-ENTRY-02). |
TDQS
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.
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.
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.
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.
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.
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.
afferens_demoA
Get real-time physical perception data from all 6 Afferens sensory modalities — VISION, SPATIAL, ACOUSTIC, ENVIRONMENTAL, MOLECULAR, and INTEROCEPTION. No API key required. Use this to demonstrate what live sensor data looks like before your AI agent is fully wired up. Free to call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
afferens_ingestA
Push live sensor data into the Afferens sensory layer. Use this when your AI agent is connected to physical hardware and wants to contribute real-time perception events. The data becomes queryable via afferens_perceive. Requires AFFERENS_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The raw sensor payload. Shape depends on modality — e.g. spatial_coords for SPATIAL, decibels for ACOUSTIC. | |
| modality | Yes | Sensory modality of the data being ingested. | |
| classification | No | Optional label for this reading (e.g. 'vessel', 'human', 'obstacle'). |
TDQS
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.
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.
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.
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.
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.
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.
afferens_perceiveA
Query live physical perception events from the Afferens sensory layer. Returns real-time sensor data your AI agent can act on — object detections, positions, sounds, environmental readings, chemical traces, and node health. Requires AFFERENS_API_KEY (free tier: 10,000 tokens, no card required — sign up at afferens.com).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of perception events to return (1-50, default 10). | |
| modality | No | Sensory modality to query. Omit to get events across all modalities. |
TDQS
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.
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.
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.
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.
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.
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.
afferens_verifyA
Fetch the live perception feed twice with a short delay, then return both raw payloads plus a hash-based freshness check. Use this as a demo proof bundle when you need to show the feed is not placeholder data.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of perception events to fetch on each probe (1-10, default 3). | |
| wait_ms | No | Delay between the two probes in milliseconds (default 2000). | |
| modality | No | Optional sensory modality to constrain the verification probe. |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.2.0- First observed
afferens_actuate - First observed
afferens_demo - First observed
afferens_ingest - First observed
afferens_perceive - First observed
afferens_verify
TDQS
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.
All tool names follow a consistent pattern: 'afferens_' + a verb (demo, perceive, actuate, verify, ingest). Perfectly predictable.
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.
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Social media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with real-time, structured data feeds including news, trends, market sentiment, and crypto prices via MCP tools.MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server enabling AI agents to author Unreal Engine 5 scenes directly, with tools for spawning actors, building PCG graphs, validating physics, generating terrain, and more through a single MCP connection.13MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to physical devices via MCP, enabling LLMs to reason about sensor data, perform cross-device correlation, and interpret anomalies.4Apache 2.0
- MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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