π Lyra Registry
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.
β¨ Features
- π Trust Scoring - Every tool is scored using the SperaxOS algorithm
- π Search & Filter - Full-text search with category, chain, and protocol filters
- π Trending - Track tool popularity and usage
- π MCP Integration - Auto-seed from running Lyra MCP servers
- π Deploy Anywhere - Deploy to any Node host in minutes
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.
ποΈ Tech Stack
- Framework: Next.js 14 (App Router)
- Database: PostgreSQL (Neon/Supabase)
- ORM: Drizzle
- Language: TypeScript
- Validation: Zod
π Quick Start
1. Clone and Install
git clone https://github.com/nirholas/lyra-registry.git
cd lyra-registry
npm install
2. Set Up Database
Create a PostgreSQL database on Neon or Supabase (free tier works).
3. Run Migrations
4. Seed Database
If you have a running Lyra MCP server:
LYRA_MCP_URL=http://localhost:3001/mcp npm run db:seed
Or seed with sample data:
5. Start Development Server
Visit http://localhost:3000 to see the landing page.
π‘ API Reference
| 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 |
Search & Discovery
| 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 |
Query Parameters
| 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 |
Example Requests
curl "http://localhost:3000/api/search?q=defi&category=defi"
curl "http://localhost:3000/api/trending?period=week&limit=10"
curl "http://localhost:3000/api/tools?category=security&sortBy=totalScore"
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"]
}'
β Trust Score Algorithm
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 | |
Grades
| 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 |
π Project Structure
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
π’ Deployment
Vercel
- Push to GitHub
- Import to Vercel
- Add
DATABASE_URL environment variable
- Deploy
Railway
railway init
railway add
railway variables set DATABASE_URL=...
railway up
π€ Integration with Lyra Ecosystem
Auto-Seeding from Lyra MCP Server
The registry can automatically import tools from a running Lyra MCP server:
cd ../Lyra && bun run build && bun dist/cli.mjs --transport=http --port=3001
cd ../lyra-registry
LYRA_MCP_URL=http://localhost:3001/mcp npm run db:seed
Discovery Pipeline (via Lyra-Intel)
The lyra-intel project can automatically discover and submit new tools:
from lyra_intel.discovery import RegistrySubmitter
submitter = RegistrySubmitter("http://localhost:3000/api/discovery")
await submitter.submit_tool(tool, security_result)
π License
All rights reserved. See LICENSE.
π Links
π Live HTTP Deployment
Lyra Registry is deployed and accessible over HTTP via MCP Streamable HTTP transport β no local installation required.
Endpoint:
https://modelcontextprotocol.name/mcp/lyra-registry
Connect from any MCP Client
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 |
Example Requests
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"}'
Also Available On
- SperaxOS - source for the MCP marketplace. The hosted marketplace is offline while hosting is being migrated.
- All 27 MCP servers β See the full catalog at modelcontextprotocol.name
Powered by modelcontextprotocol.name β the open MCP HTTP gateway
Documentation
Full documentation site: https://nirholas.github.io/lyra-registry/