
A centralized registry API for discovering and evaluating crypto tools across the Lyra ecosystem. Exposes REST endpoints for searching 800+ blockchain and DeFi tools with filters for category, chain, protocol, and trust grade. Each tool gets scored using the SperaxOS algorithm based on validation, deployment, and documentation, then assigned an A/B/F grade. You can query trending tools by day/week/month, full-text search across descriptions, and register new tools via POST. Useful when you need a single source of truth for crypto tool metadata instead of scraping scattered GitHub repos. Built on Next.js with PostgreSQL and designed to auto-seed from running Lyra MCP servers, though the main 800-tool repo is still in cleanup before public release.
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 install
Create a PostgreSQL database on Neon or Supabase (free tier works).
cp .env.example .env
# Edit .env with your DATABASE_URL
npm run db:push
If you have a running Lyra MCP server:
LYRA_MCP_URL=http://localhost:3001/mcp npm run db:seed
Or seed with sample data:
npm run db:seed
npm run dev
Visit 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.md
DATABASE_URL environment variablerailway init
railway add
railway variables set DATABASE_URL=...
railway up
The 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:seed
The 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-registry
Add 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/