Lyra Registry — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Lyra Registry (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The NPM for Crypto AI Tools - Central registry for the Lyra ecosystem
Lyra Registry is a standalone API service that catalogs, scores, and serves metadata for all tools in the Lyra ecosystem. It enables discovery, evaluation, and integration of 800+ crypto & DeFi MCP tools.
Between builds I am working on cleaning up the main Lyra repo with over 800+ blockchain and cryptocurrency tools. I hope to release it soon.
The public demo deployment is offline while hosting is being migrated. Run it locally with the Quick Start below, or read the source at github.com/nirholas/lyra-registry.
git clone https://github.com/nirholas/lyra-registry.git
cd lyra-registry
npm installCreate a PostgreSQL database on Neon or Supabase (free tier works).
cp .env.example .env
# Edit .env with your DATABASE_URLnpm run db:pushIf you have a running Lyra MCP server:
LYRA_MCP_URL=http://localhost:3001/mcp npm run db:seedOr seed with sample data:
npm run db:seednpm run devVisit http://localhost:3000 to see the landing page.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tools | List all tools with pagination |
| POST | /api/tools | Register a new tool |
| GET | /api/tools/:id | Get tool by ID |
| PATCH | /api/tools/:id | Update a tool |
| DELETE | /api/tools/:id | Delete a tool |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/search?q= | Full-text search |
| GET | /api/trending | Get trending tools |
| GET | /api/categories | List all categories |
| POST | /api/discovery | Submit tool for review |
| GET | /api/health | Health check & stats |
#### /api/tools and /api/search
| Param | Type | Description | ||
|---|---|---|---|---|
q | string | Search query | ||
category | string | Filter by category slug | ||
chain | string | Filter by blockchain (bsc, ethereum, etc.) | ||
protocol | string | Filter by protocol (pancakeswap, aave, etc.) | ||
grade | a\ | b\ | f | Filter by trust grade |
requiresApiKey | true\ | false | Filter by API key requirement | |
tags | string | Comma-separated tags | ||
page | number | Page number (default: 1) | ||
limit | number | Items per page (default: 20, max: 100) | ||
sortBy | string | Sort field: name, createdAt, totalScore, downloadCount | ||
sortOrder | asc\ | desc | Sort direction (default: desc) |
#### /api/trending
| Param | Type | Description | ||
|---|---|---|---|---|
period | day\ | week\ | month | Time period (default: week) |
limit | number | Number of results (default: 10, max: 50) | ||
category | string | Filter by category |
# Search for DeFi tools
curl "http://localhost:3000/api/search?q=defi&category=defi"
# Get top 10 trending tools this week
curl "http://localhost:3000/api/trending?period=week&limit=10"
# Get all security tools
curl "http://localhost:3000/api/tools?category=security&sortBy=totalScore"
# Register a new tool
curl -X POST "http://localhost:3000/api/tools" \
-H "Content-Type: application/json" \
-d '{
"name": "my_custom_tool",
"description": "A custom DeFi tool",
"category": "defi",
"inputSchema": {
"type": "object",
"properties": {
"address": { "type": "string" }
},
"required": ["address"]
},
"chains": ["ethereum", "bsc"],
"tags": ["defi", "portfolio"]
}'Every tool is scored using the SperaxOS trust algorithm. The score determines the tool's grade:
| Criteria | Weight | Required |
|---|---|---|
| Validated | 20 | ✅ |
| Has Tools | 15 | ✅ |
| Deployment | 15 | ✅ |
| Documentation | 10 | ✅ |
| Auto Deploy | 12 | |
| License | 8 | |
| Prompts | 8 | |
| Resources | 8 | |
| Claimed | 4 |
| Grade | Score | Description |
|---|---|---|
| A | 80%+ | All required items met, excellent tool |
| B | 60-79% | All required items met, good tool |
| F | <60% | Missing required items or low score |
lyra-registry/
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── tools/
│ │ │ │ ├── route.ts # GET/POST /api/tools
│ │ │ │ └── [id]/
│ │ │ │ └── route.ts # GET/PATCH/DELETE /api/tools/:id
│ │ │ ├── search/
│ │ │ │ └── route.ts # GET /api/search
│ │ │ ├── trending/
│ │ │ │ └── route.ts # GET /api/trending
│ │ │ ├── categories/
│ │ │ │ └── route.ts # GET/POST /api/categories
│ │ │ ├── discovery/
│ │ │ │ └── route.ts # GET/POST /api/discovery
│ │ │ └── health/
│ │ │ └── route.ts # GET /api/health
│ │ ├── globals.css
│ │ ├── layout.tsx
│ │ └── page.tsx # Landing page
│ ├── db/
│ │ ├── index.ts # Database connection
│ │ ├── schema.ts # Drizzle schema
│ │ └── seed.ts # Seed script
│ ├── lib/
│ │ ├── calculateScore.ts # Trust score algorithm (from SperaxOS)
│ │ └── validation.ts # Zod schemas
│ └── types/
│ └── index.ts # TypeScript types
├── drizzle.config.ts
├── next.config.ts
├── package.json
├── tsconfig.json
└── README.mdDATABASE_URL environment variablerailway init
railway add
railway variables set DATABASE_URL=...
railway upThe registry can automatically import tools from a running Lyra MCP server:
# Start Lyra server
cd ../Lyra && bun run build && bun dist/cli.mjs --transport=http --port=3001
# Seed registry
cd ../lyra-registry
LYRA_MCP_URL=http://localhost:3001/mcp npm run db:seedThe lyra-intel project can automatically discover and submit new tools:
# In lyra-intel
from lyra_intel.discovery import RegistrySubmitter
submitter = RegistrySubmitter("http://localhost:3000/api/discovery")
await submitter.submit_tool(tool, security_result)All rights reserved. See LICENSE.
Lyra Registry is deployed and accessible over HTTP via MCP Streamable HTTP transport — no local installation required.
Endpoint:
https://modelcontextprotocol.name/mcp/lyra-registryAdd to your MCP client configuration (Claude Desktop, Cursor, SperaxOS, etc.):
{
"mcpServers": {
"lyra-registry": {
"type": "http",
"url": "https://modelcontextprotocol.name/mcp/lyra-registry"
}
}
}| Tool | Description |
|---|---|
search_mcp_ecosystem | Search MCP ecosystem |
get_popular_mcp_servers | Popular MCP servers |
get_sperax_mcp_servers | All Sperax MCP servers |
Search MCP ecosystem:
curl -X POST https://modelcontextprotocol.name/mcp/lyra-registry \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_mcp_ecosystem","arguments":{"query":"crypto defi"}}}'Popular MCP servers:
curl -X POST https://modelcontextprotocol.name/mcp/lyra-registry \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_popular_mcp_servers","arguments":{"category":"crypto"}}}'All Sperax MCP servers:
curl -X POST https://modelcontextprotocol.name/mcp/lyra-registry \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_sperax_mcp_servers","arguments":{}}}'curl -X POST https://modelcontextprotocol.name/mcp/lyra-registry \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Powered by modelcontextprotocol.name — the open MCP HTTP gateway
Full documentation site: https://nirholas.github.io/lyra-registry/
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.