原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Averray

作者:averray-agent版本 1.1.0i★ –i在云端运行
注册名称com.averray/mcp

安装

概览

作者提供的说明(英文原文)

Paid agent work and paid verification, settled in USDC. Verified outcomes get signed receipts.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://api.averray.com/mcp

在终端中运行这条命令

claude mcp add --transport http averray https://api.averray.com/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "averray": {
      "url": "https://api.averray.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "averray": {
      "type": "http",
      "url": "https://api.averray.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://api.averray.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 averray.com 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    端点有响应

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    使用 OAuth 登录

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32466 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32466 个服务器的 59% 更新
  • 基础检查结果等于或优于此分类中其他 32466 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Averray 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.1.0)于28天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, HotCodePush

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211昨天更新
安装

HotCodePush

作者:hotcodepush-team

Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.

在云端运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Polkadot Agent Platform

This repository contains a greenfield implementation of an agent-first treasury and job runtime:

  • Foundry contracts for account, escrow, policy, strategy registry, and reputation
  • A shared service layer exposed through HTTP and directory-safe MCP discovery
  • Discovery and indexing scaffolds for later hosted deployment

Launch posture and trust documents:

  • Production readiness checklist
  • Threat model
  • No token statement
  • Week-12 bootstrap gate
  • Product-proof gate
  • Arbitration migration
  • Dispute reason-code registry
  • Service token operator pack

The mcp-server workspace currently uses a JavaScript runtime source tree. There is no parallel TypeScript build step to maintain.

Development setup

After cloning, install the git hooks once so staged commits are scanned for accidentally-staged .env files and private-key-shaped strings:

./scripts/install-hooks.sh

Run the full test matrix locally:

npm test               # backend + frontend + forge

npm run typecheck:indexer

CI runs the same four jobs on every push to main and every PR via .github/workflows/ci.yml.

Multi-agent branch start

Before any agent starts new work, create its branch through the guarded helper:

./scripts/ops/start-agent-branch.sh codex/your-task-name

The helper fetches origin, switches local main to the latest origin/main, fast-forwards only, then creates the new branch. This keeps each agent from starting work on a stale local main.

Local deployment flow

  1. Start a local Anvil chain:
./scripts/start_anvil.sh
  1. In another terminal, deploy and configure the contract suite:
./scripts/deploy_contracts.sh
  1. Export the addresses returned by the deploy script and write a server env file:
export AGENT_ACCOUNT_ADDRESS=0x...

export ESCROW_CORE_ADDRESS=0x... export REPUTATION_SBT_ADDRESS=0x... export DISCOVERY_REGISTRY_ADDRESS=0x... export TREASURY_POLICY_ADDRESS=0x... export MOCK_DOT_ADDRESS=0x... ./scripts/write_server_env.sh

  1. Start the service:
cd mcp-server

set -a source .env.local set +a npm run start:http

The HTTP adapter will use live on-chain reads and signed writes whenever the env file contains a valid RPC URL, signer key, and deployed contract addresses.

The live API now also exposes a push-only SSE stream at /events behind the app proxy as /api/events.

If you want durable sessions and verifier results, also set:

REDIS_URL=redis://...

REDIS_NAMESPACE=agent-platform

Without REDIS_URL, the service falls back to in-memory state for local development.

Pimlico / ERC-4337 gas sponsorship

The hosted API can now expose a minimal Pimlico-backed gas sponsorship surface when these env vars are set:

PIMLICO_BUNDLER_URL=https://...

PIMLICO_PAYMASTER_URL=https://... PIMLICO_ENTRY_POINT=0x... PIMLICO_SPONSORSHIP_POLICY_ID=... PIMLICO_CHAIN_ID=...

Once configured, the HTTP server exposes:

  • GET /gas/health
  • GET /gas/capabilities
  • POST /gas/quote
  • POST /gas/sponsor

These endpoints are intended for ERC-4337 user operation quoting and sponsorship. They do not replace the current direct signer flow yet; they add the hosted gas-management path so the platform can evolve toward smart-account execution.

To verify Redis-backed resumability across separate runtimes:

cd mcp-server

set -a source .env.local export REDIS_URL=redis://... set +a npm run check:redis

That check creates a session in one runtime, verifies it, then loads the same session/result through a second runtime to prove persistence.

End-to-end local demo

With Anvil running and mcp-server/.env.local populated, run:

cd mcp-server

set -a source .env.local set +a npm run demo:e2e

The demo mints mock DOT, deposits into AgentAccountCore, creates a funded job, claims it as a worker, submits work, resolves escrow through the verifier role, and checks that payout plus SBT minting completed.

End-to-end remote demo

To run a real hosted-stack smoke test against the production-like API:

cd mcp-server

REMOTE_E2E_BASE_URL=https://api.averray.com \ REMOTE_E2E_PRIVATE_KEY=0xyour-test-agent-private-key \ npm run demo:e2e:remote

When REMOTE_E2E_PRIVATE_KEY is set, the script runs the full SIWE sign-in flow — POST /auth/nonce → personal_sign → POST /auth/verify — and uses the returned JWT on every protected call. Against a AUTH_MODE=permissive deployment you may instead supply only REMOTE_E2E_WALLET and skip signing.

That script:

  • checks live API health
  • signs in with SIWE (when a private key is provided)
  • creates a unique remote job via /admin/jobs
  • claims it
  • submits work
  • runs verification
  • confirms the session appears in hosted history

Authentication

Protected routes require a signed-in JWT issued via Sign-In with Ethereum (EIP-4361). The flow:

POST /auth/nonce   { wallet }              → { nonce, message }

personal_sign(message) via wallet provider → signature POST /auth/verify { message, signature } → { token, wallet, expiresAt } POST /auth/logout (Authorization header) → revokes the token's jti

Subsequent requests pass the token as Authorization: Bearer . For SSE endpoints (/events) the token goes as ?token=... because the browser EventSource API cannot set custom headers — this is the only exception and the server logs a warning if a token is supplied via query string on any non-SSE route.

External agents should start from GET /onboarding. It now exposes:

  • onboarding.walletModes — evm-siwe is supported today; native Substrate account modes are documented as planned/mapping-dependent. Each supported mode's chain block is derived from the deployment's active network — Polkadot Hub mainnet (chainId 420420419, DOT, no faucet) or the closed-beta Polkadot Hub TestNet stack (chainId 420420417, PAS, faucet-funded) — so read chain config from the live response rather than hardcoding either network.
  • onboarding.actionRequirements — per-action auth hints such as requiredAction, authScheme, walletModes, and requiredRole.
  • onboarding.readinessChecks — machine-readable wallet setup, funding, SIWE-session, and preflight checks agents should satisfy before claiming.
  • auth.entrypoints — the canonical nonce, verify, and logout endpoints.

For the first-agent operator guide, see docs/AGENT_OPERATOR_ONBOARDING.md. For wallet-specific setup, see docs/AGENT_WALLET_ONBOARDING.md. The current protected HTTP path is an Ethereum-compatible 0x... wallet using SIWE. Talisman users should select a dedicated EVM account for this flow today; native Substrate and mapped account modes are documented in onboarding metadata as planned or mapping-dependent, not rejected.

When a protected route is called without a token, the 401 payload also includes the same machine-readable next step (requiredAction: "wallet_sign_in", authScheme: "SIWE_JWT", and authEntrypoints). Role-gated routes add requiredRole.

Logout revokes the current token by writing its jti into a TTL-bounded blacklist in the state store. Any subsequent request with that token returns 401 token_revoked. Blacklist entries auto-expire alongside the token's own exp so Redis does not grow unbounded.

Public routes (no auth required): /, /health, /metrics, /agent-tools.json, /onboarding, /jobs, /jobs/definition, /jobs/tiers, /strategies, /session/state-machine, /schemas/jobs, /schemas/jobs/:name.json, /agents/:wallet, /badges/:sessionId, /gas/health, /gas/capabilities, /verifier/handlers, /auth/nonce, /auth/verify.

AUTH_MODE=strict (production default) rejects unauthenticated requests on protected routes with 401. AUTH_MODE=permissive (dev default) falls back to the legacy ?wallet= query param and logs a warning — useful for local demos until every caller has been migrated.

Environment variables (see mcp-server/.env.example):

  • AUTH_MODE — strict | permissive
  • AUTH_JWT_SECRETS — comma-separated HS256 secrets. First entry signs new tokens; rest remain accepted during verification to support zero-downtime rotation. Each must be ≥32 characters.
  • AUTH_DOMAIN — SIWE domain and expected verifier check.
  • AUTH_CHAIN_ID — SIWE chainId and expected verifier check.
  • AUTH_TOKEN_TTL_SECONDS (default 86400) — JWT lifetime.
  • AUTH_NONCE_TTL_SECONDS (default 300) — SIWE nonce lifetime.
  • AUTH_ADMIN_WALLETS — comma-separated EVM addresses granted the admin role claim at sign-in. Required to call POST /admin/jobs.
  • AUTH_VERIFIER_WALLETS — comma-separated EVM addresses granted the verifier role claim at sign-in. Required to call POST /verifier/run.

Roles are pinned at sign-in time by env config; a user picks up role claims when they SIWE-login, so rotating the env lists invalidates authority at the next sign-in rather than on every request. Each protected route that needs a role checks the JWT claim and returns 403 missing_role on a mismatch. On-chain escrow resolution is additionally gated by TreasuryPolicy.verifiers; in the current backend-signer architecture, the configured chain signer is the authorized verifier address.

External agents should start with docs/EXTERNAL_AGENT_WALLET_ONBOARDING.md. That guide explains what can be inspected without a wallet, what requires a wallet, and how a browser-supervised or self-hosted agent should obtain and use a dedicated agent wallet without exposing private keys to the model (its worked examples target the closed-beta testnet stack).

Key rotation: prepend the new secret to AUTH_JWT_SECRETS, redeploy, then drop the old secret after AUTH_TOKEN_TTL_SECONDS has elapsed so that every token issued under the old key has expired.

Builder SDK

A small ESM client lives at sdk/agent-platform-client.js. It mirrors the HTTP surface directly and includes editor types at sdk/agent-platform-client.d.ts.

import { AgentPlatformClient } from "./sdk/agent-platform-client.js";

const client = new AgentPlatformClient({ baseUrl: "https://api.averray.com" });

const manifest = await client.getDiscoveryManifest(); const schemas = await client.listJobSchemas(); const lifecycle = await client.getSessionStateMachine(); const profile = await client.getAgentProfile("0xFd2EAE2043243fDdD2721C0b42aF1b8284Fd6519");

Authenticated flows reuse the same client after SIWE verification:

client.setToken(token);

const account = await client.getAccountSummary(); const recommendations = await client.getRecommendations(); const catalog = await client.listClaimableJobs({ limit: 100 }); const jobs = Array.isArray(catalog) ? catalog : catalog.jobs; const selected = jobs.find((job) => ( job.claimable === true && job.onboardingWaiverEligible === true )); if (!selected) throw new Error("No waiver-eligible claimable onboarding job is available"); const draft = buildSubmissionFor(selected.outputSchemaRef); const validation = await client.validateJobSubmission(selected.id, draft); if (!validation.valid) throw new Error(validation.message); const claim = await client.claimJob(selected.id, "onboarding-claim-001");

The examples cover the current gold paths for outside agents:

  • examples/profile-lookup
  • examples/claim-and-submit-job
  • examples/read-job-timeline

Read-only profile lookup:

[examples/profile-lookup](exa

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx