This repository is archived and no longer maintained. See DEPRECATED.md for details.
Modular MCP server toolkit - 12+ tools for AI agents
Filesystem ops β’ Network requests β’ Data processing β’ RAG tools β’ PDF extraction
Quick Start β’ Packages β’ Development
A comprehensive collection of modular tools designed for the Model Context Protocol (MCP), enabling AI agents to perform various operations efficiently.
The Problem:
Building MCP servers from scratch:
- Repetitive boilerplate code
- Inconsistent tool interfaces
- Scattered tool implementations
- No shared utilities or patterns
The Solution:
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.
| 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 |
| 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 |
| 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 |
| 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.
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
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
Deploy robust MCP servers:
- Vercel adaptor - Serverless deployment
- Turborepo - Optimized builds
- Type-safe - Full TypeScript support
- Node.js - Latest LTS version (check
.nvmrcif available) - pnpm - Version specified in
package.jsonpackageManagerfield
# Clone the repository
git clone https://github.com/SylphxAI/tools.git
cd tools
# Install dependencies
pnpm install# Build all packages
pnpm build
# Build continuously during development
pnpm build:watch
# Run linting
pnpm lint
# Run tests (build first)
pnpm test| Component | Technology |
|---|---|
| Monorepo | Turborepo |
| Package Manager | pnpm workspaces |
| Language | TypeScript |
| Code Quality | Biome (50x faster than ESLint) |
| Testing | Vitest |
| MCP Protocol | Model Context Protocol |
Each tool follows a consistent pattern:
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.json
- 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
tools-core
import { defineTool } from '@sylphx/tools-core'
const myTool = defineTool({
name: 'my-tool',
description: 'Does something useful',
schema: { /* Zod schema */ },
execute: async (input) => { /* implementation */ }
})tools-adaptor-mcp
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'
})# Build all packages
pnpm build
# Build specific package
pnpm --filter @sylphx/tools-filesystem build
# Watch mode for development
pnpm build:watch# Lint all packages
pnpm lint
# Fix linting issues
pnpm lint:fix
# Format code
pnpm format# Run all tests
pnpm test
# Run tests for specific package
pnpm --filter @sylphx/tools-json test
# Watch mode
pnpm test:watch# Create package directory
mkdir -p packages/tools-newtool/src
# Create package.json
cat > packages/tools-newtool/package.json <<EOF
{
"name": "@sylphx/tools-newtool",
"version": "1.0.0",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts"
}
EOF// packages/tools-newtool/src/index.ts
import { defineTool } from '@sylphx/tools-core'
import { z } from 'zod'
export const newTool = defineTool({
name: 'new-tool',
description: 'A new tool',
schema: z.object({
input: z.string()
}),
execute: async ({ input }) => {
// Implementation
return { result: `Processed: ${input}` }
}
})# Create MCP package
mkdir -p packages/tools-newtool-mcp/src
# Create server
cat > packages/tools-newtool-mcp/src/index.ts <<EOF
import { createMCPServer } from '@sylphx/tools-adaptor-mcp'
import { newTool } from '@sylphx/tools-newtool'
const server = createMCPServer({
tools: [newTool],
name: 'New Tool MCP Server',
version: '1.0.0'
})
server.start()
EOF# Using the Vercel adaptor
pnpm --filter @sylphx/tools-adaptor-vercel build
# Deploy
vercelFROM node:lts-alpine
WORKDIR /app
# Install pnpm
RUN npm install -g pnpm
# Copy package files
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages ./packages
# Install dependencies
RUN pnpm install --frozen-lockfile
# Build
RUN pnpm build
# Start MCP server
CMD ["pnpm", "start"]β Completed
- Core tool framework
- MCP adaptor
- Filesystem tools
- Network tools
- Data processing tools (JSON, XML, Base64, PDF)
- Hashing utilities
- RAG tools
- Turborepo monorepo setup
π Planned
- Image processing tools
- Database adaptors (PostgreSQL, MongoDB)
- Authentication tools
- Caching utilities
- Monitoring and logging tools
- GraphQL tools
- WebSocket tools
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch -
git checkout -b feature/my-tool - Follow the tool pattern - Use existing tools as reference
- Add tests - Ensure good coverage
- Update documentation - Add your tool to this README
- Submit a pull request
- Use TypeScript for all code
- Follow Biome formatting rules
- Write comprehensive tests
- Add JSDoc comments for public APIs
- π Bug Reports
- π¬ Discussions
- π§ Email
Show Your Support: β Star β’ π Watch β’ π Report bugs β’ π‘ Suggest features β’ π Contribute
ISC Β© Sylphx
Built with:
- Turborepo - Monorepo build system
- pnpm - Fast package manager
- Biome - Code quality tools
- TypeScript - Type safety
Special thanks to the MCP community β€οΈ
Modular. Reusable. Production-ready.
The MCP toolkit that scales with your needs
sylphx.com β’
@SylphxAI β’
hi@sylphx.com