{"id":"d8c5c6d5-4347-41ef-acf6-deed36af0d14","entityType":"agent","slug":"npm-odor","name":"odor","canonicalUrl":"https://xpersona.co/agent/npm-odor","canonicalPath":"/agent/npm-odor","generatedAt":"2026-04-17T04:24:33.082Z","source":"NPM","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation. Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation.","descriptionLabel":"Technical summary","evidenceSummary":"Published capability contract available. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"npm install odor","sourceUrl":"https://github.com/catpea/odor","homepage":"https://catpea.github.io/odor","primaryLinks":[{"label":"View on npm","url":"https://github.com/catpea/odor","kind":"source"},{"label":"Homepage","url":"https://catpea.github.io/odor","kind":"homepage"}],"safetyScore":77,"overallRank":20.3606,"popularityScore":1,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation."},"coverage":{"evidence":{"source":"capability-contract + public-profile","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:40:32.900Z","emptyReason":null},"protocols":[{"protocol":"MCP","label":"MCP","status":"verified","notes":"Confirmed by published contract metadata."},{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"blog","status":"self-declared"},{"label":"static-site","status":"self-declared"},{"label":"muriel","status":"self-declared"},{"label":"flow","status":"self-declared"},{"label":"agent","status":"self-declared"},{"label":"ai","status":"self-declared"},{"label":"spellcheck","status":"self-declared"},{"label":"incremental","status":"self-declared"},{"label":"atomic","status":"self-declared"}],"verifiedCount":1,"selfDeclaredCount":10,"capabilityMatrix":{"rows":[{"key":"MCP","type":"protocol","support":"supported","confidenceSource":"contract","notes":"Confirmed by capability contract"},{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"blog","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"static-site","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"muriel","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"flow","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"ai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"spellcheck","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"incremental","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"atomic","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:MCP|supported|contract protocol:OPENCLEW|unknown|profile capability:blog|supported|profile capability:static-site|supported|profile capability:muriel|supported|profile capability:flow|supported|profile capability:agent|supported|profile capability:ai|supported|profile capability:spellcheck|supported|profile capability:incremental|supported|profile capability:atomic|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":"odor","latestVersion":"1.0.14","tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-23T19:32:26.175Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-02-23T19:32:26.175Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-24T19:32:26.175Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"capability-contract","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:40:32.900Z","emptyReason":null},"installCommand":"npm install odor","setupComplexity":"medium","setupSteps":["Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"ready","authModes":["mcp"],"requires":["mcp","openclew","lang:typescript"],"forbidden":[],"supportsMcp":true,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":"https://github.com/catpea/odor#input","outputSchemaRef":"https://github.com/catpea/odor#output","dataRegion":"global","contractUpdatedAt":"2026-02-24T19:40:32.900Z","sourceUpdatedAt":"2026-02-24T19:40:32.900Z","freshnessSeconds":4437840},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://xpersona.co/api/v1/agents/npm-odor/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/npm-odor/contract","trustUrl":"https://xpersona.co/api/v1/agents/npm-odor/trust"},"curlExamples":["curl -s \"https://xpersona.co/api/v1/agents/npm-odor/snapshot\"","curl -s \"https://xpersona.co/api/v1/agents/npm-odor/contract\"","curl -s \"https://xpersona.co/api/v1/agents/npm-odor/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["MCP","OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"NPM","generatedAt":"2026-04-17T04:24:33.082Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://xpersona.co/api/v1/agents/npm-odor/dossier","snapshotUrl":"https://xpersona.co/api/v1/agents/npm-odor/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/npm-odor/contract","trustUrl":"https://xpersona.co/api/v1/agents/npm-odor/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":[],"safeUseWhen":["Contract is available with explicit auth and schema references.","Trust confidence is not low and verification freshness is acceptable.","Protocol support is explicitly confirmed in contract metadata."],"riskFlags":["trust_data_unavailable"],"operationalConfidence":"medium"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"npm","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation.","readmeExcerpt":"Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation.","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"npm","editorialOverview":"Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation. Static blog generator with parallel encoding, incremental builds, atomic writes, and an AI agent for spellcheck, tagging, summarization, and quality evaluation.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":341,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-04-17T04:24:33.082Z","emptyReason":null},"items":[{"id":"ddb3848a-845b-4152-8693-9440ff38be15","entityType":"agent","canonicalPath":"/agent/gitlab-ai-catalog-fforster-gitlab-mcp","slug":"gitlab-ai-catalog-fforster-gitlab-mcp","name":"gitlab-mcp","description":"A Model Context Protocol (MCP) server for GitLab","url":"https://gitlab.com/fforster/gitlab-mcp","homepage":"https://gitlab.com/fforster/gitlab-mcp","source":"GITLAB_AI_CATALOG","protocols":["MCP"],"capabilities":["AI","mcp","model-context-protocol"],"safetyScore":80,"overallRank":82.7,"updatedAt":"2026-04-15T00:20:26.165Z","createdAt":"2026-04-14T18:11:15.957Z","downloads":null},{"id":"7b5e48c4-3e6b-4241-8b4c-594811ddb818","entityType":"agent","canonicalPath":"/agent/gitlab-public-projects-fforster-gitlab-mcp","slug":"gitlab-public-projects-fforster-gitlab-mcp","name":"gitlab-mcp","description":"A Model Context Protocol (MCP) server for GitLab","url":"https://gitlab.com/fforster/gitlab-mcp","homepage":"https://gitlab.com/fforster/gitlab-mcp","source":"GITLAB_PUBLIC_PROJECTS","protocols":["MCP"],"capabilities":["AI","mcp","model-context-protocol"],"safetyScore":74,"overallRank":80,"updatedAt":"2026-04-15T00:20:05.405Z","createdAt":"2026-04-14T18:18:04.081Z","downloads":null},{"id":"6c0f914a-954b-49b2-a41c-b6a29595cc13","entityType":"agent","canonicalPath":"/agent/gitlab-ai-catalog-lx-industries-rmcp-openapi","slug":"gitlab-ai-catalog-lx-industries-rmcp-openapi","name":"rmcp-openapi","description":"Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)","url":"https://gitlab.com/lx-industries/rmcp-openapi","homepage":"https://gitlab.com/lx-industries/rmcp-openapi","source":"GITLAB_AI_CATALOG","protocols":["MCP"],"capabilities":["mcp","openapi","rust"],"safetyScore":80,"overallRank":73.6,"updatedAt":"2026-04-15T00:20:25.709Z","createdAt":"2026-04-14T18:11:14.776Z","downloads":null},{"id":"22fd91df-a057-46d0-9b63-c13f9b979bf9","entityType":"agent","canonicalPath":"/agent/gitlab-ai-catalog-lx-industries-rmcp-actix-web","slug":"gitlab-ai-catalog-lx-industries-rmcp-actix-web","name":"rmcp-actix-web","description":"An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)","url":"https://gitlab.com/lx-industries/rmcp-actix-web","homepage":"https://gitlab.com/lx-industries/rmcp-actix-web","source":"GITLAB_AI_CATALOG","protocols":["MCP"],"capabilities":["actix-web","mcp","rust"],"safetyScore":80,"overallRank":72.1,"updatedAt":"2026-04-15T00:20:25.262Z","createdAt":"2026-04-14T18:11:15.284Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/npm","protocols":[{"label":"MCP","href":"/agent/protocol/mcp"},{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}