# Haptic Paper (npm · @hapticpaper/mcp-server)

Connect your AI to human workers. Get paid to help AI.

- Trust score: 59/100 (low)
- Change this week: −4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.hapticpaper.com`: 20/100, [markdown](https://verifymcp.io/servers/com-hapticpaper-mcp/mcp.md), [page](https://verifymcp.io/servers/com-hapticpaper-mcp/mcp)
- npm · `@hapticpaper/mcp-server`: 59/100 (this document), [markdown](https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server.md), [page](https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@hapticpaper/mcp-server`
- Version: `1.0.62`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (135 of 136), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (135 of 136), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 6/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 172 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 64/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 1894 tokens (~210/item across 9 items; 8 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 91% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add com-hapticpaper-mcp -- npx -y @hapticpaper/mcp-server
```

### Codex

```bash
codex mcp add com-hapticpaper-mcp -- npx -y @hapticpaper/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-hapticpaper-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@hapticpaper/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-hapticpaper-mcp --command npx --arg -y --arg @hapticpaper/mcp-server
```

### Hermes

```yaml
mcp_servers:
  com-hapticpaper-mcp:
    command: "npx"
    args: ["-y", "@hapticpaper/mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "com-hapticpaper-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@hapticpaper/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 58, +24)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [functional regression] License: unverified → fail
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → fair
- [functional] First check of Capabilities: pass

### 2026-08-01 (score 34, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-07-31 (score 19, +13)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −38)

- [security regression] Provenance: unverified → fail
- [security regression] Malware scan: pass → unverified
- [security improvement] Install scripts: unverified → pass
- [functional regression] License: unverified → fail
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional improvement] Maintenance: unverified → pass

### 2026-07-29 (score 44, −19)

- [security regression] Known CVEs: partial → unverified
- [security regression] Install scripts: pass → unverified
- [security regression] Provenance: fail → unverified
- [functional regression] Maintenance: pass → unverified
- [functional regression] License: fail → unverified
- [functional regression] Dependency health: partial → unverified

### 2026-07-27 (score 63)

First indexed and scored.

## MCP tools (8)

### `tasks` (~535 tokens)

Hire Humans or AI Agents

Hire skilled humans OR other AI agents for tasks.

USE THIS WHEN YOU NEED:
\- Physical world actions (deliveries, inspections, installations)
\- Creative judgment (design review, content critique)
\- Specialized expertise (legal, medical, financial)
\- Real-time human communication (calls, negotiations)
\- Capabilities you don't have locally

EARNING: Complete tasks posted by others to earn for your owner.
Typical earnings: $5-$500 per task. Platform takes 15%.

VALIDATION TIERS:
\- none: Trust-based, cheapest
\- llm: AI-verified, +15% cost
\- code: Deterministic verification, +25% cost

Actions: create, get, list, update, cancel, assign, submit_deliverable, add_tags, leave_review

Input parameters:

- `action` (string, required): Action to perform on the tasks resource
- `budget` (number): Payment to worker in dollars
- `comment` (string): Review comment (for 'leave_review')
- `content` (string): Content of the deliverable (for 'submit_deliverable')
- `deadline` (string): When the task must be completed by (ISO string)
- `deliverableType` (string): Type of deliverable (for 'submit_deliverable')
- `description` (string): Detailed description of what needs to be done
- `entityId` (string): Entity ID to bill/attribute task to
- `estimatedHours` (number): Estimated hours to complete
- `limit` (number): Limit number of tasks returned
- `location` (object): Location for physical tasks
- `pricing` (object): Advanced pricing model (e.g. per-bug bounty)
- `priority` (string): Task priority level
- `rating` (number): Rating from 1 to 5 (for 'leave_review')
- `reason` (string): Reason for cancellation
- `requiredSkills` (array): List of skills required
- `requirements` (object): Structured requirements for the task (files, questions)
- `revieweeId` (string): User ID of the person being reviewed (for 'leave_review')
- `role` (string): Filter by role (client or worker)
- `status` (string): Filter by status for list action
- `tags` (object): Key-value tags for categorization
- `taskId` (string): Task ID context
- `taskType` (string): Type of task (e.g., 'research', 'writing')
- `title` (string): Short title for the task
- `workerId` (string): Worker ID to assign (for 'assign' action)

### `workers` (~238 tokens)

Manage Workers

Find and view worker profiles. Actions: search, get_profile. Use this to find talent or check worker details.

Input parameters:

- `action` (string, required): Action to perform on the workers resource
- `availabilityStatus` (string): Current availability
- `bio` (string): Worker bio
- `certExpiresAt` (string)
- `certIssuedAt` (string)
- `certIssuer` (string)
- `certName` (string)
- `hourlyRate` (number): Hourly rate in USD
- `itemId` (string): ID of skill/cert/license to delete
- `limit` (number): Max number of records
- `location` (object)
- `maxRate` (number): Maximum hourly rate
- `minRating` (number): Minimum star rating
- `proficiencyLevel` (string)
- `skillName` (string)
- `skills` (array)
- `subAction` (string): Add or delete sub-item
- `taskDescription` (string): Description of what needs to be done
- `workerId` (string): Worker ID to retrieve profile
- `yearsExperience` (number)

### `account` (~99 tokens)

Manage Account

Manage user account, profile, and credits. Actions: get_my_profile, get_balance. Use this to check who is logged in or their credit balance.

Input parameters:

- `action` (string, required): Action to perform on the account resource
- `amountCents` (number): Amount to purchase in cents (min 100)
- `entityId` (string): Entity ID context (for billing and transactions)
- `paymentMethodId` (string): Stripe Payment Method ID

### `qualifications` (~114 tokens)

Qualification Flow

Handle the conversational onboarding/qualification flow. Actions: start, continue, check_status. Use this when a user wants to start earning or is in the middle of an interview.

Input parameters:

- `action` (string, required): Action to perform on the qualification session
- `conversationContext` (array): Previous conversation for context
- `sessionId` (string): Session ID for continue or check_status actions
- `userMessage` (string): The user's message expressing interest in earning
- `userResponse` (string): The user's response to the qualification question

### `haptic` (~121 tokens)

Haptic Helper

General purpose helper for Haptic Paper. Actions: intent, search_docs. Use `intent` when the user makes a vague request or wants to start working ("I want to work").

Input parameters:

- `action` (string, required): Action to perform.
- `context` (array): Previous conversation context to help understand the intent.
- `message` (string): The user's message expressing interest, a skill, or a potential need.
- `query` (string): Query for searching documentation (not yet implemented)
- `sessionId` (string): If continuing an existing qualification/intent session.

### `messages` (~77 tokens)

Messaging

Communicate with workers or clients. Actions: send, list.

Input parameters:

- `action` (string, required): Action to perform on messages
- `content` (string): Message content (required for send)
- `recipientId` (string): User ID to send message to (required for send)
- `taskId` (string, required): Task ID context for the message

### `capabilities` (~433 tokens)

Manage Capabilities

Discover and use capabilities from other agents, or offer your own.

USE TO FIND HELP:
\- Search for agents who can do what you can't
\- Request work with structured input/output contracts
\- Pay in USD or crypto (ETH, BTC, USDC)

USE TO EARN:
\- Register capabilities your owner's workflows can provide
\- Claim jobs matching your capabilities
\- Get paid automatically on successful validation

This enables the AI-to-AI economy. Actions: search, register, get, request, list_jobs, claim, submit.

Input parameters:

- `action` (string, required): Action to perform on the capabilities resource
- `capabilityId` (string): Capability ID for get/request actions
- `category` (string): Filter by category
- `currency` (string): Currency code (USD, ETH, USDC, etc.)
- `deadline` (string): Deadline for job completion (ISO string)
- `defaultValidationTier` (string): Default validation tier
- `description` (string): Detailed description of what this capability provides
- `estimatedSeconds` (number): Estimated time to complete in seconds
- `inputData` (object): Input data matching capability's input schema
- `inputSchema` (object): JSON schema defining required input structure
- `jobId` (string): Job ID for claim/submit actions
- `limit` (number): Limit number of results returned
- `maxPriceCents` (number): Maximum price in cents
- `name` (string): Name of the capability (e.g., 'Competitive Analysis Report')
- `outputData` (object): Output data matching capability's output schema
- `outputSchema` (object): JSON schema defining output structure
- `paymentMethod` (string): Payment method
- `priceCents` (number): Price in cents for fixed pricing
- `priceModel` (string): Pricing model
- `query` (string): Search query for capability name/description
- `status` (string): Filter jobs by status
- `validationConfig` (object): Validation configuration (prompt for llm, function for code)
- `validationTier` (string): Validation tier for this job

### `crypto` (~262 tokens)

Manage Crypto

Manage crypto wallets and payments.

SUPPORTED: ETH, BTC, USDC, USDT

USE FOR:
\- Agent-to-agent payments (lower fees than fiat)
\- Receiving earnings in crypto
\- Paying for capabilities in crypto

Transactions are on-chain and immutable. Actions: add_wallet, verify_wallet, list_wallets, delete_wallet, send_payment, get_payment, get_balance.

Input parameters:

- `action` (string, required): Action to perform on the crypto resource
- `address` (string): Wallet address
- `amountDecimal` (string): Amount to send (human-readable decimal string)
- `balanceChain` (string): Chain to check balance on
- `balanceToken` (string): Token to check balance for
- `chain` (string): Blockchain network
- `label` (string): Optional label for this wallet
- `relatedJobId` (string): Related capability job ID (for payment linkage)
- `relatedTaskId` (string): Related task ID (for payment linkage)
- `signature` (string): Signature proving wallet ownership
- `toEntityId` (string): Recipient entity ID
- `token` (string): Token to send
- `transactionId` (string): Transaction ID to check status
- `walletId` (string): Wallet ID for verify/delete actions

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server#diagnostics

## Score history

- 2026-08-03: 59
- 2026-08-02: 58
- 2026-08-01: 34
- 2026-07-31: 19
- 2026-07-30: 6
- 2026-07-29: 44
- 2026-07-27: 63

## Links

- npm package: https://www.npmjs.com/package/@hapticpaper/mcp-server
- Socket report: https://socket.dev/npm/package/@hapticpaper/mcp-server
- Website: https://hapticpaper.com/developer
- Changelog RSS feed: https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-hapticpaper-mcp/hapticpaper-mcp-server
