AMFS is fully managed — no infrastructure to deploy. Your agents connect through the HTTP API using an API key. Everything is authenticated, scoped, and audited.
Get Your Credentials
- Go to the AMFS Dashboard → Agents page
- The MCP Connection Card shows your Server URL and API Key
- Copy the ready-made JSON snippet — paste it into your IDE config
Need more keys? Go to Settings → API Keys to create scoped keys per agent or service.
Connect Your IDE
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"amfs": {
"command": "uvx",
"args": ["amfs-mcp-server"],
"env": {
"AMFS_HTTP_URL": "https://amfs-login.sense-lab.ai",
"AMFS_API_KEY": "<your-api-key>"
}
}
}
}
Claude Code
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"amfs": {
"command": "uvx",
"args": ["amfs-mcp-server"],
"env": {
"AMFS_HTTP_URL": "https://amfs-login.sense-lab.ai",
"AMFS_API_KEY": "<your-api-key>"
}
}
}
}
Any MCP Client
Set AMFS_HTTP_URL and AMFS_API_KEY as environment variables on the uvx amfs-mcp-server process. That’s it.
To avoid committing keys to git, use Cursor’s env interpolation: "AMFS_API_KEY": "${env:AMFS_API_KEY}" and set the variable in your shell profile.
Connect via SDK
Set the env vars once — both SDKs pick them up automatically:
export AMFS_HTTP_URL="https://amfs-login.sense-lab.ai"
export AMFS_API_KEY="<your-api-key>"
Python
from amfs import AgentMemory
mem = AgentMemory(agent_id="my-agent")
mem.write("checkout-service", "retry-pattern", {"max_retries": 3})
TypeScript
import { AgentMemory } from "@amfs/sdk";
const mem = new AgentMemory({ agentId: "my-agent" });
await mem.write("checkout-service", "retry-pattern", { maxRetries: 3 });
Connect via REST API
curl -X POST https://amfs-login.sense-lab.ai/api/v1/entries \
-H "Content-Type: application/json" \
-H "X-AMFS-API-Key: <your-api-key>" \
-d '{"entity_path": "checkout-service", "key": "retry-pattern", "value": {"max_retries": 3}}'
See the API Reference for the full endpoint list.
Security
Account isolation — Postgres Row-Level Security ensures tenants can’t see each other’s data, even if there’s an application bug.
Scoped keys — Restrict keys to specific entity paths and permissions:
amfs_sk_live_abc123 → checkout-service/** [READ_WRITE]
shared/patterns/* [READ]
Audit logging — Every state-changing operation is recorded. View in Dashboard → Audit Log.
Never hardcode API keys in files committed to git. Use environment variables or a secrets manager.
Troubleshooting
| Problem | Fix |
|---|
401 Unauthorized | Check your API key in Dashboard → Settings → API Keys |
403 Scope Denied | Key doesn’t have permission for that entity path — check scopes |
uvx: command not found | Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh |