Claude Code, Plugin
mercadopago
Mercado Pago full-product integration toolkit.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 9815b7fe3769, unchanged since the check below.
OBFUSCATION_MINIFIED_PAYLOAD
Why this grade
- OBFUSCATION_MINIFIED_PAYLOAD Medium
Contains a very long line with almost no spaces in a script or style file.
scripts/detect-checkout-cta.mjs, line 70
const strongText = /\b(checkout|finalizar(?:\s+(?:compra|pedido))?|concluir(?:\s+(?:compra|pedido))?|confirmar\s+(?:compra|pedido)|proceder\s+(?:al|ao)\s+pago|proceder\s+ao\s+pagam
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
Concern
can delete files.
PERMISSION_DELETE_FILES
hooks/test_validate_mp_credentials.py, line 37
return subprocess.run(
scripts/test-bricks-tools.mjs, line 88
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-checkout-tools.mjs, line 380
fs.rmSync(tempRoot, { recursive: true, force: true });
Show more
scripts/test-marketplace-tools.mjs, line 141
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-payouts-tools.mjs, line 153
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-point-tools.mjs, line 99
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-qr-tools.mjs, line 109
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-smartapps-tools.mjs, line 126
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
scripts/test-subscriptions-tools.mjs, line 127
fs.rmSync(temporaryDirectory, { recursive: true, force: true });
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.mercadopago.com. The description does not name that host. can reach sdk.mercadopago.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
scripts/test-bricks-tools.mjs, line 20
<script>fetch('/api/mp-config', { cache: 'no-store' });</script>
scripts/test-bricks-tools.mjs, line 25
fetch('https://api.mercadopago.com/v1/payments', { headers: { 'X-Idempotency-Key': crypto.randomUUID() }, body: JSON.stringify({
scripts/test-bricks-tools.mjs, line 49
sync (form) => { const response = await fetch('/api/bricks/payments'); return response
Show more
scripts/test-bricks-tools.mjs, line 53
s: { onSubmit: async (form) => { return fetch('/api/bricks/payments'); } } });</script
scripts/test-bricks-tools.mjs, line 57
', { callbacks: { onSubmit: async () => fetch('/api/bricks/payments') } });</script>`,
scripts/test-bricks-tools.mjs, line 60
stedPurchase = derivePurchase(cart.id); fetch('https://api.mercadopago.com/checkout/pr
scripts/test-bricks-tools.mjs, line 61
nt('wallet')}<script>const data = await fetch('/api/bricks/preference').then(r => r.js
scripts/test-bricks-tools.mjs, line 64
stedPurchase = derivePurchase(cart.id); fetch('https://api.mercadopago.com/v1/checkout
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
commands/mp-integrate.md, line 144
MP_ACCESS_TOKEN | DevPanel → app → {test_tab} | backend .env | No
commands/mp-integrate.md, line 145
MP_PUBLIC_KEY | DevPanel → app → {test_tab} | frontend .env | Yes
commands/mp-integrate.md, line 146
MP_WEBHOOK_SECRET | DevPanel → Webhooks → Signature| backend .env | No
Show more
hooks/test_validate_mp_credentials.py, line 62
"content": "const token = process.env.MP_ACCESS_TOKEN",
hooks/test_validate_mp_credentials.py, line 70
{"tool_name": "Read", "tool_input": {"file_path": ".env.staging"}}
hooks/test_validate_mp_credentials.py, line 76
{"tool_name": "Read", "tool_input": {"file_path": ".env.example"}}
hooks/test_validate_mp_credentials.py, line 82
{"tool_name": "Bash", "tool_input": {"command": "cat .env.staging"}}
hooks/test_validate_mp_credentials.py, line 88
{"tool_name": "Bash", "tool_input": {"command": "cat .env"}},
hooks/test_validate_mp_credentials.py, line 97
"tool_input": {"file_path": ".env.local", "content": fake_access_token()},
scripts/test-bricks-tools.mjs, line 14
const MP_PUBLIC_KEY = process.env.MP_PUBLIC_KEY;
scripts/test-checkout-tools.mjs, line 210
const publicKey = process.env.MP_PUBLIC_KEY?.trim();
scripts/test-marketplace-tools.mjs, line 15
const MP_CLIENT_SECRET = process.env.MP_CLIENT_SECRET;
scripts/test-marketplace-tools.mjs, line 17
const MP_TOKEN_ENCRYPTION_KEY = process.env.MP_TOKEN_ENCRYPTION_KEY;
scripts/test-marketplace-tools.mjs, line 79
app.get('/api/mp-config', (req, res) => res.json({ publicKey: process.env.MP_PUBLIC_KEY }));
scripts/test-marketplace-tools.mjs, line 84
app.get('/api/mp-config', (req, res) => res.json({ publicKey: process.env.MP_PUBLIC_KEY }));
scripts/test-marketplace-tools.mjs, line 121
'server.js': apiServer.replace('publicKey: process.env.MP_PUBLIC_KEY', 'publicKey: sellerConnection.publicKey || process.env.MP_PUBLIC_KEY'),
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains a minified payload.
OBFUSCATION_MINIFIED_PAYLOAD
scripts/detect-checkout-cta.mjs, line 70
const strongText = /\b(checkout|finalizar(?:\s+(?:compra|pedido))?|concluir(?:\s+(?:compra|pedido))?|confirmar\s+(?:compra|pedido)|proceder\s+(?:al|ao)\s+pago|proceder\s+ao\s+pagam
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 9815b7fe3769. can delete files. can reach a host that is not written as a fixed address. can reach api.mercadopago.com. The description does not name that host. can reach sdk.mercadopago.com. The description does not name that host. reads a credential or environment file. contains a minified payload.
Date and source
Date checked:
github.com
Commit graded: 9815b7fe3769783ddafce0745d113351c8e69ab0
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.