Monorepo for Sylph Lab Model Context Protocol (MCP) tools and servers.
4 stars
TypeScript
Updated Aug 22, 2025
ai
language-models
mcp
model-context-protocol
monorepo
tools
typescript
Documentation
---
🚀 Overview
A comprehensive collection of modular tools designed for the Model Context Protocol (MCP), enabling AI agents to perform various operations efficiently.
The Problem:
code
Building MCP servers from scratch:
- Repetitive boilerplate code
- Inconsistent tool interfaces
- Scattered tool implementations
- No shared utilities or patternsThe Solution:
code
MCP Tools Monorepo:
- Modular tool architecture 🧩
- Consistent interfaces across tools 🎯
- Shared core utilities 📦
- MCP adaptors for easy integration ⚡Result: Build MCP servers faster with reusable, well-tested tool components.
---
📦 Packages
Core & Infrastructure
| Package | Description | Purpose |
|---|---|---|
| tools-core | Core utilities and type definitions | Base framework for all tools |
| tools-adaptor-mcp | MCP server integration adaptor | Convert tools to MCP servers |
| tools-adaptor-vercel | Vercel platform adaptor | Deploy tools on Vercel |
Data Processing Tools
| Package | Description | MCP Server |
|---|---|---|
| tools-json | JSON parsing, validation, transformation | ✅ tools-json-mcp |
| tools-xml | XML parsing and processing | ✅ tools-xml-mcp |
| tools-base64 | Base64 encoding/decoding | ✅ tools-base64-mcp |
| tools-pdf | PDF text extraction | ✅ tools-pdf-mcp |
System & Network Tools
| Package | Description | MCP Server |
|---|---|---|
| tools-filesystem | File operations (read, write, list, search) | ✅ tools-filesystem-mcp |
| tools-net | Network requests (fetch, IP info, DNS) | ✅ tools-net-mcp |
| tools-fetch-mcp | Specialized fetch tool for MCP | ✅ Standalone MCP |
| tools-hasher | Hashing utilities (MD5, SHA, etc.) | ✅ tools-hasher-mcp |
Specialized Tools
| Package | Description | MCP Server |
|---|---|---|
| tools-rag | Retrieval-Augmented Generation tools | ✅ tools-rag-mcp |
| tools-wait | Delay and timing utilities | ✅ tools-wait-mcp |
Pattern: Most tools follow the tools-{name} + tools-{name}-mcp pattern, separating core logic from MCP server implementation.
---
🎯 Use Cases
AI Agent Development
Build powerful MCP servers for AI assistants:
- File management - Read, write, search files
- Web scraping - Fetch and process web content
- Document processing - Extract text from PDFs
- Data transformation - JSON/XML/Base64 operations
Rapid Prototyping
Quickly assemble MCP servers from pre-built tools:
- Mix and match - Combine tools as needed
- Consistent interfaces - Predictable tool behavior
- Shared utilities - Less code duplication
Production Deployment
Deploy robust MCP servers:
- Vercel adaptor - Serverless deployment
- Turborepo - Optimized builds
- Type-safe - Full TypeScript support
---
🚀 Quick Start
Prerequisites
- Node.js - Latest LTS version (check
.nvmrcif available) - pnpm - Version specified in
package.jsonpackageManagerfield
Installation
bash
# Clone the repository
git clone https://github.com/SylphxAI/tools.git
cd tools
# Install dependencies
pnpm installDevelopment Workflow
bash
# Build all packages
pnpm build
# Build continuously during development
pnpm build:watch
# Run linting
pnpm lint
# Run tests (build first)
pnpm test---
🛠️ Tech Stack
| Component | Technology |
|---|---|
| Monorepo | Turborepo |
| Package Manager | pnpm workspaces |
| Language | TypeScript |
| Code Quality | Biome (50x faster than ESLint) |
| Testing | Vitest |
| MCP Protocol | Model Context Protocol |
---
💡 Architecture
Tool Structure
Each tool follows a consistent pattern:
code
packages/
├── tools-{name}/ # Core tool logic
│ ├── src/
│ │ ├── index.ts # Tool implementation
│ │ └── types.ts # TypeScript types
│ └── package.json
└── tools-{name}-mcp/ # MCP server wrapper
├── src/
│ └── index.ts # MCP server entry
└── package.jsonBenefits
- Separation of concerns - Core logic separate from MCP protocol
- Reusability - Use tools outside of MCP context
- Testability - Test core logic independently
- Flexibility - Easy to create alternative adaptors
---
📖 Package Details
Core Utilities
tools-core
typescript
import { defineTool } from '@sylphx/tools-core'
const myTool = defineTool({
name: 'my-tool',
description: 'Does something useful',
schema: { /* Zod schema */ },
execute: async (input) => { /* implementation */ }
})MCP Adaptor
tools-adaptor-mcp
typescript
import { createMCPServer } from '@sylphx/tools-adaptor-mcp'
import { myTool } from '@sylphx/tools-mytool'
const server = createMCPServer({
tools: [myTool],
name: 'My MCP Server',
version: '1.0.0'
})---
🔧 Development
Building Packages
bash
# Build all packages
pnpm build
# Build specific package
pnpm --filter @sylphx/tools-filesystem build
# Watch mode for development
pnpm build:watchCode Quality
bash
# Lint all packages
pnpm lint
# Fix linting issues
pnpm lint:fix
# Format code
pnpm formatTesting
bash
# Run all tests
pnpm test
# Run tests for specific package
pnpm --filter @sylphx/tools-json test
# Watch mode
pnpm test:watch---
📋 Creating a New Tool
Step 1: Create Core Package
bash
# Create package directory
mkdir -p packages/tools-newtool/src
# Create package.json
cat > packages/tools-newtool/package.json {
// Implementation
return { result: `Processed: ${input}` }
}
})Step 3: Create MCP Server
bash
# Create MCP package
mkdir -p packages/tools-newtool-mcp/src
# Create server
cat > packages/tools-newtool-mcp/src/index.ts
Modular. Reusable. Production-ready.
The MCP toolkit that scales with your needs
•
•Similar MCP
Based on tags & features
Trending MCP
Most active this week