mayanet-verify
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mayanet-verifyverify volunteer verify-operator-001"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mayanet Verify MCP
Stdio MCP that checks a volunteer against Colombian public sources (Croma) and stores a Pass / Alert / Fail report in an isolated Neon schema verify. It never reads or alters intake (public.volunteers).
License: MIT. LinkedIn is URL-normalize only — no profile fetch.
Quick path
npm install(Node 20+).Put a verify-scoped Postgres URL and a Croma key in
.env(copy.env.example).Apply schema once:
psql "$DATABASE_URL" -f sql/001_verify_schema.sqlPoint Cursor at this repo (stdio block below) and reload MCP.
Call
verify_volunteerwithvolunteer_id: "verify-operator-001"after the document is bound.
Expected: a JSON report with overall_status and per-check statuses. Seed fixture is Example Operator / CC 1000000000 / id verify-operator-001.
Related MCP server: checkyourself
Explain
Topic | Decision |
Who uses it | Any MCP client (Cursor, Claude). No GUI in this repo. |
Data plane | Schema |
Colombia | Croma REST ( |
Store/normalize a URL. | |
Orchestrator |
|
Out of scope: UI, WhatsApp/email, numeric scores, biometrics, LinkedIn scraping, Registraduría, bulk-copy of intake rows.
Stand up
Requirements
Node.js 20+
DATABASE_URL— Postgres role that can DMLverifyonlyCROMA_API_KEY— org bearer (croma_live_…)psqlonce, to apply SQL
DATABASE_URL=<verify-scoped-postgres-url>
CROMA_API_KEY=<croma-api-key>Do not commit .env. Runtime never runs DDL.
Schema (once)
psql "$DATABASE_URL" -f sql/001_verify_schema.sqlCreates verify.volunteers, verify.verification_requests, verify.verification_reports, and seeds verify-operator-001. Re-apply is safe (ON CONFLICT (document_number) DO NOTHING).
Rollback: DROP SCHEMA verify CASCADE. Never ALTER public.volunteers.
Cursor (stdio)
npm install, then user ~/.cursor/mcp.json or project .cursor/mcp.json:
{
"mcpServers": {
"mayanet-verify": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "/absolute/path/to/mallanet-verify",
"env": {
"DATABASE_URL": "<verify-scoped-postgres-url>",
"CROMA_API_KEY": "<croma-api-key>"
}
}
}
}Missing env aborts before tools register. Reload MCP after edits.
Smoke (stdin close exits 0 if env is set):
printf '' | DATABASE_URL="<verify-scoped-postgres-url>" CROMA_API_KEY="<croma-api-key>" npx tsx src/index.tsOperate
First verify (seed)
The SQL seed is already bound (document_number = 1000000000). After MCP is live:
list_pending_volunteers{ "limit": 20, "status_filter": "pending" }— expectverify-operator-001until a report exists.get_volunteer{ "volunteer_id": "verify-operator-001" }— confirm the row.verify_volunteer{ "volunteer_id": "verify-operator-001" }— Croma + persist.
To bind a different person (never commit a real cédula):
{
"volunteer_id": "verify-operator-001",
"document_type": "CC",
"document_number": "<document-number>",
"linkedin_url": "https://www.linkedin.com/in/example"
}That is request_verification_data. Then verify_volunteer again. Without document_number the orchestrator throws identity unbound. Unknown id throws volunteer not found.
Tools
Tool | Required | Optional | Role |
| — |
| Rows in |
|
| — | One row |
|
|
| Bind identity; never logged |
| — |
| Croma only; RUES if NIT/employer |
|
|
| Normalize URL; |
|
| — | Croma + persist (same persist path as orchestrator) |
|
| — | Request row + persist report |
Report shape
{
"volunteer_id": "verify-operator-001",
"name": "Example Operator",
"overall_status": "Pass",
"checks": {
"judicial": "Pass",
"criminal_records": "Pass",
"procuraduria": "Pass",
"rues": "N/A",
"linkedin_consistency": "Alert"
},
"findings": [],
"linkedin_summary": { "headline": "", "experience": [], "education": [] },
"timestamp": "2026-08-16T00:00:00.000Z"
}Heuristics
Check | Pass | Alert | Fail |
Policía / Procuraduría |
| upstream error |
|
Rama Judicial | no cases | any cases or error (name search; never auto-Fail) | — |
RUES | found and employer matches | not found, mismatch, or error | — |
RUES skipped | — | — |
|
— | always, until consented OAuth | — |
Overall: any Fail → Fail; else any Alert → Alert; else Pass. N/A is ignored. One source failing does not abort the others.
Limits and failures
Croma default quota is 100 requests/day/org. One
verify_volunteeris several calls.Policía can take ~55s (202 poll in-process). Host MCP timeouts may fire first.
Logs may include
volunteer_idand document type. They must never includedocument_number.
Tests
npm testNo live Croma in CI. Isolation tests assert the SQL never touches public.
Checklist
.envset, not committedsql/001_verify_schema.sqlapplied to a verify-scoped databaseCursor MCP reloaded; tools visible
get_volunteerreturnsverify-operator-001verify_volunteerreturnsoverall_status+checksnpm testis green
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for sanctions screening and PEP checks via OpenSanctions API. Search entities, match against 320+ sanctions lists, and run compound compliance investigations with AI agents.637MIT
- AlicenseBqualityAmaintenanceLocal-first production-readiness MCP server for AI-built apps. It runs read-only checks, produces an evidence-based readiness score, and guides fixes before launch.95Apache 2.0
- Flicense-qualityBmaintenanceMCP server for scanning AI systems and code for demographic, occupational, and geographic biases. Enables CI integration and AI agent-driven bias detection.
- Flicense-qualityCmaintenanceMCP server for Peruvian government data, enabling search and anomaly detection in public procurement (OSCE) and legislative tracking (Congress), plus semantic search over both domains.
Related MCP Connectors
A paid remote MCP for Skybridge, built to return verdicts, receipts, usage logs, and audit-ready JSO
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
A paid remote MCP for Equibles, built to return verdicts, receipts, usage logs, and audit-ready JSON
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jseramn/mallanet-verify'
If you have feedback or need assistance with the MCP directory API, please join our Discord server