Grades are a hygiene check, not a security guarantee.

MCP, MCP server

AccordTrace

AccordTrace, an MCP server listed in the PlugVet directory.

Compatibility: Not stated.

Grade D

Two or more Medium findings, or a High finding. Only try it in a sandbox.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

Rescanned at commit ecca5e3093f2, unchanged since the check below.

OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD

Why this grade

  • OBFUSCATION_ENCODED_BLOB Medium

    Contains a long base64 shaped string in a file that should be readable.

    cloudflare/src/affiliate-settlement.js, line 77 function ledgerStatement(env,{commissionId,referrerPassportId,eventType,amountDelta,currency,reasonCode,createdAt}){const id=`atl_${randomHex(16)}`;const material=`${commissionId}|

  • OBFUSCATION_MINIFIED_PAYLOAD Medium

    Contains a very long line with almost no spaces in a script or style file.

    cloudflare/src/affiliate-settlement.js, line 77 function ledgerStatement(env,{commissionId,referrerPassportId,eventType,amountDelta,currency,reasonCode,createdAt}){const id=`atl_${randomHex(16)}`;const material=`${commissionId}|

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Pass

    No shell or command execution found, and no extra permission was declared.

  • Install and update

    Pass

    No install-time script found, and dependencies are pinned or absent.

  • Network

    Concern

    can reach a host that is not written as a fixed address. can reach api.stripe.com. The description does not name that host. can reach api.indexnow.org. The description does not name that host.

    NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST

    adapters/mcp/server.js, line 8

    const response = await fetch(`${baseUrl}${path}`, options);

    cloudflare/src/control-plane-hardening.js, line 67

    or='network_error'; try{const res=await fetch(delivery.url,{method:'POST',headers,body

    cloudflare/src/control-plane.js, line 112

    const res=await fetch(hook.url,{method:'POST',headers,body:JSO

    Show more

    cloudflare/src/control-plane.js, line 125

    else{try{const r=await fetch(delivery.url,{method:'POST',headers:deli

    cloudflare/src/index.js, line 7

    async fetch(request, env) {

    cloudflare/src/index.js, line 76

    const response = await env.ASSETS.fetch(new Request(new URL("/openapi.json", request.url)));

    cloudflare/src/index.js, line 104

    return withSecurityHeaders(await env.ASSETS.fetch(request));

    cloudflare/src/interoperability.js, line 16

    const response = await env.ASSETS.fetch(new Request(assetUrl, { method: "GET" }));

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_DOTENV

    api/src/server.js, line 79

    const notary = options.notary ?? createNotary({ keyFile: process.env.NOTARY_KEY_FILE ?? join(dataDir, "notary-key.pem") });

    cloudflare/src/payment-hardening.js, line 71

    rification=await createPaymentAdapter({...env,X402_FACILITATOR_URL:facilitator},'x402

    examples/agent-handoff/claude.mjs, line 4

    assert.ok(process.env.ANTHROPIC_API_KEY, "Set ANTHROPIC_API_KEY before running this example");

    Show more

    examples/agent-handoff/claude.mjs, line 10

    "x-api-key": process.env.ANTHROPIC_API_KEY,

    examples/agent-handoff/openai.mjs, line 4

    assert.ok(process.env.OPENAI_API_KEY, "Set OPENAI_API_KEY before running this example");

    examples/agent-handoff/openai.mjs, line 10

    authorization: `Bearer ${process.env.OPENAI_API_KEY}`,

    examples/framework-handoff/autogen.py, line 22

    if not os.getenv("OPENAI_API_KEY"):

    examples/framework-handoff/openai_agents.py, line 23

    if not os.getenv("OPENAI_API_KEY"):

    scripts/agent-wallet-concurrency-e2e.mjs, line 40

    operatorToken = String(process.env.WALLET_E2E_OPERATOR_TOKEN || '');

    .gitignore, line 1

    .env

  • Agent instructions

    Pass

    No instruction to ignore earlier instructions or to hide a step.

  • Obfuscation

    Concern

    contains a minified payload. contains an encoded blob in a file that should be readable.

    OBFUSCATION_ENCODED_BLOB OBFUSCATION_MINIFIED_PAYLOAD

    cloudflare/src/affiliate-settlement.js, line 77

    function ledgerStatement(env,{commissionId,referrerPassportId,eventType,amountDelta,currency,reasonCode,createdAt}){const id=`atl_${randomHex(16)}`;const material=`${commissionId}|

    cloudflare/src/affiliate.js, line 141

    function ledgerStatement(env,{commissionId,referrerPassportId,eventType,amountDelta,currency,reasonCode,createdAt}){const id=`atl_${randomHex(16)}`;const material=`${commissionId}|

    cloudflare/src/control-plane-hardening.js, line 85

    function normalizeAlertEvent(input){const e=input&&typeof input==='object'?input:{};const digest=String(e.event_digest||'').trim();if(!/^[a-f0-9]{64}$/i.test(digest))throw new Hard

    Show more

    cloudflare/src/identity-hardening.js, line 32

    const list=[]; for(const x of rows.results||[]){const effective=x.status==='active'&&Date.parse(x.expires_at)<=Date.now()?'expired':x.status; const uniqueRecovery=Boolean(x.recover

    cloudflare/src/launch.js, line 11

    if(request.method==='GET'&&url.pathname==='/api/v1/launch/capabilities')return reply({service:'AccordTrace Launch',version:'0.4.0',features:['privacy_bounded_waitlist','campaign_at

    cloudflare/src/passport-product.js, line 245

    const priceAtomic=envInt(env.PASSPORT_PRODUCT_PRICE_ATOMIC,200,1,1_000_000),currency=String(env.PASSPORT_PRODUCT_CURRENCY||'usd').toLowerCase();const affiliatePrice=envInt(env.AFFI

    cloudflare/src/stripe.js, line 28

    form.set('mode','payment');form.set('success_url',`${base}/checkout-success.html?order_id=${encodeURIComponent(orderId)}&session_id={CHECKOUT_SESSION_ID}`);form.set('cancel_url',`$

    cloudflare/src/wallet-guardian.js, line 129

    function paymentView(row){return{id:row.id,status:row.status,senderAgentId:row.sender_passport_id,recipientAgentId:row.recipient_passport_id,amount:formatAssetAmount(row.amount_ato

    web/site-resilience.css, line 1

    /* Shared accessibility and narrow-screen fixes; no branding or color changes. */

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit ecca5e3093f2. can reach a host that is not written as a fixed address. can reach api.stripe.com. The description does not name that host. can reach api.indexnow.org. The description does not name that host. reads a credential or environment file. contains a minified payload. contains an encoded blob in a file that should be readable.

Date and source

Date checked:

View source

github.com

Commit graded: ecca5e3093f295fad8ab906f823f812d4074e5a7

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen