MCP Registry - Lyra

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, blockchain, DeFi, memecoin, NFT, metaverse, trading tools, MCP tools.

šŸŒ™ 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
  • šŸš€ Vercel Ready - Deploy to Vercel/Railway in minutes

šŸ—ļø 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
pnpm install

2. Set Up Database

Create a PostgreSQL database on Neon or Supabase (free tier works).

cp .env.example .env
# Edit .env with your DATABASE_URL

3. Run Migrations

pnpm db:push

4. Seed Database

If you have a running Lyra MCP server:

LYRA_MCP_URL=http://localhost:3001/mcp pnpm db:seed

Or seed with sample data:

pnpm db:seed

5. Start Development Server

pnpm dev

Visit http://localhost:3000 to see the landing page.

šŸ“” API Reference

Tools

MethodEndpointDescription
GET/api/toolsList all tools with pagination
POST/api/toolsRegister a new tool
GET/api/tools/:idGet tool by ID
PATCH/api/tools/:idUpdate a tool
DELETE/api/tools/:idDelete a tool

Search & Discovery

MethodEndpointDescription
GET/api/search?q=Full-text search
GET/api/trendingGet trending tools
GET/api/categoriesList all categories
POST/api/discoverySubmit tool for review
GET/api/healthHealth check & stats

Query Parameters

/api/tools and /api/search

ParamTypeDescription
qstringSearch query
categorystringFilter by category slug
chainstringFilter by blockchain (bsc, ethereum, etc.)
protocolstringFilter by protocol (pancakeswap, aave, etc.)
gradea|b|fFilter by trust grade
requiresApiKeytrue|falseFilter by API key requirement
tagsstringComma-separated tags
pagenumberPage number (default: 1)
limitnumberItems per page (default: 20, max: 100)
sortBystringSort field: name, createdAt, totalScore, downloadCount
sortOrderasc|descSort direction (default: desc)

/api/trending

ParamTypeDescription
periodday|week|monthTime period (default: week)
limitnumberNumber of results (default: 10, max: 50)
categorystringFilter by category

Example Requests

# 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"]
  }'

⭐ Trust Score Algorithm

Every tool is scored using the SperaxOS trust algorithm. The score determines the tool's grade:

CriteriaWeightRequired
Validated20āœ…
Has Tools15āœ…
Deployment15āœ…
Documentation10āœ…
Auto Deploy12
License8
Prompts8
Resources8
Claimed4

Grades

GradeScoreDescription
A80%+All required items met, excellent tool
B60-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

  1. Push to GitHub
  2. Import to Vercel
  3. Add DATABASE_URL environment variable
  4. 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:

# 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 pnpm db:seed

Discovery Pipeline (via Lyra-Intel)

The lyra-intel project can automatically discover and submit new tools:

# In lyra-intel
from lyra_intel.discovery import RegistrySubmitter

submitter = RegistrySubmitter("https://lyra-registry.vercel.app/api/discovery")
await submitter.submit_tool(tool, security_result)

šŸ“œ License

MIT

šŸ”— Links

Related Servers