Brainiall NLP
Sentiment, toxicity, entity extraction, PII, translation, summary, QA, fraud scoring, safety audit.
Crawler Summary
TypeScript MCP server boilerplate with STDIO and HTTP transport support, CLI tools, and extensible architecture Boilerplate MCP Server A production-ready foundation for developing custom Model Context Protocol (MCP) servers in TypeScript. Provides a complete layered architecture pattern, working example implementation, and comprehensive developer infrastructure to connect AI assistants with external APIs and data sources. $1 $1 **Latest Update (Feb 2026)**: Updated to MCP SDK 1.26.0 and Zod 4.3.6 with continued modern register Published capability contract available. No trust telemetry is available yet. 68 GitHub stars reported by the source. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
@aashari/boilerplate-mcp-server is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
TypeScript MCP server boilerplate with STDIO and HTTP transport support, CLI tools, and extensible architecture Boilerplate MCP Server A production-ready foundation for developing custom Model Context Protocol (MCP) servers in TypeScript. Provides a complete layered architecture pattern, working example implementation, and comprehensive developer infrastructure to connect AI assistants with external APIs and data sources. $1 $1 **Latest Update (Feb 2026)**: Updated to MCP SDK 1.26.0 and Zod 4.3.6 with continued modern register
Public facts
7
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Published capability contract available. No trust telemetry is available yet. 68 GitHub stars reported by the source. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Aashari
Artifacts
0
Benchmarks
0
Last release
3.2.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. 68 GitHub stars reported by the source. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/aashari/boilerplate-mcp-server.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Aashari
Protocol compatibility
MCP
Auth modes
mcp, api_key, oauth
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
68 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
# Clone the repository
git clone https://github.com/aashari/boilerplate-mcp-server.git
cd boilerplate-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run in different modes:
# 1. CLI Mode - Execute commands directly
npm run cli -- get-ip-details 8.8.8.8
npm run cli -- get-ip-details # Get your current IP
npm run cli -- get-ip-details 1.1.1.1 -e # With extended data
npm run cli -- get-ip-details 8.8.8.8 --jq "{ip: query, country: country}" # JMESPath filter
npm run cli -- get-ip-details 8.8.8.8 -o json # JSON output
# 2. STDIO Transport - For AI assistant integration (Claude Desktop, Cursor)
npm run mcp:stdio
# 3. HTTP Transport - For web-based integrations
npm run mcp:http
# 4. Development with MCP Inspector
npm run mcp:inspect # Auto-opens browser with debugging UItext
status: success query: 8.8.8.8 country: United States city: Ashburn lat: 39.03 lon: -77.5
json
{
"status": "success",
"query": "8.8.8.8",
"country": "United States",
"city": "Ashburn"
}bash
# Extract specific fields
npm run cli -- get-ip-details 8.8.8.8 --jq "{ip: query, country: country}"
# Output:
# ip: 8.8.8.8
# country: United States
# Nested structure
npm run cli -- get-ip-details 8.8.8.8 --jq "{location: {city: city, coords: {lat: lat, lon: lon}}}"text
src/ ├── cli/ # Command-line interfaces │ ├── index.ts # CLI entry point with Commander setup │ └── ipaddress.cli.ts # IP address CLI commands ├── controllers/ # Business logic orchestration │ ├── ipaddress.controller.ts # IP lookup business logic │ └── ipaddress.formatter.ts # Response formatting ├── services/ # External API interactions │ ├── vendor.ip-api.com.service.ts # ip-api.com service │ └── vendor.ip-api.com.types.ts # Service type definitions ├── tools/ # MCP tool definitions (AI interface) │ ├── ipaddress.tool.ts # IP lookup tool (inline content) │ ├── ipaddress-link.tool.ts # IP lookup with ResourceLink pattern │ └── ipaddress.types.ts # Tool argument schemas ├── resources/ # MCP resource definitions │ └── ipaddress.resource.ts # IP lookup resource (URI: ip://address) ├── prompts/ # MCP prompt definitions │ └── analysis.prompt.ts # IP analysis prompt templates ├── types/ # Global type definitions │ └── common.types.ts # Shared interfaces (ControllerResponse, etc.) ├── utils/ # Shared utilities │ ├── logger.util.ts # Contextual logging system │ ├── error.util.ts # MCP-specific error formatting │ ├── error-handler.util.ts # Error handling utilities │ ├── config.util.ts # Environment configuration │ ├── constants.util.ts # Version and package constants │ ├── formatter.util.ts # Markdown formatting and response truncation │ ├── toon.util.ts # TOON format encoding │ ├── jq.util.ts # JMESPath filtering │ ├── response.util.ts # Raw API response logging │ └── transport.util.ts # HTTP transport utilities └── index.ts # Server entry point (dual transport)
bash
# Build and Clean npm run build # Build TypeScript to dist/ npm run clean # Remove dist/ and coverage/ npm run prepare # Build + ensure executable permissions (for npm publish) # CLI Testing npm run cli -- get-ip-details 8.8.8.8 # Test specific IP npm run cli -- get-ip-details --include-extended-data # Test with extended data npm run cli -- get-ip-details --no-use-https # Test with HTTP # MCP Server Modes npm run mcp:stdio # STDIO transport for AI assistants npm run mcp:http # HTTP transport on port 3000 npm run mcp:inspect # HTTP + auto-open MCP Inspector # Testing npm test # Run all tests (Jest) npm run test:coverage # Generate coverage report npm run test:cli # Run CLI-specific tests # Code Quality npm run lint # ESLint with TypeScript rules npm run format # Prettier formatting
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
TypeScript MCP server boilerplate with STDIO and HTTP transport support, CLI tools, and extensible architecture Boilerplate MCP Server A production-ready foundation for developing custom Model Context Protocol (MCP) servers in TypeScript. Provides a complete layered architecture pattern, working example implementation, and comprehensive developer infrastructure to connect AI assistants with external APIs and data sources. $1 $1 **Latest Update (Feb 2026)**: Updated to MCP SDK 1.26.0 and Zod 4.3.6 with continued modern register
A production-ready foundation for developing custom Model Context Protocol (MCP) servers in TypeScript. Provides a complete layered architecture pattern, working example implementation, and comprehensive developer infrastructure to connect AI assistants with external APIs and data sources.
Latest Update (Feb 2026): Updated to MCP SDK 1.26.0 and Zod 4.3.6 with continued modern
registerToolpatterns and streamable HTTP improvements. See docs/MODERNIZATION.md for details.
/tmp/mcp/<project>/ with truncation guidanceregisterTool API pattern (ready for v2 migration)isError field and contextual loggingModel Context Protocol (MCP) is an open standard for securely connecting AI systems to external tools and data sources. This boilerplate implements the MCP specification with a clean, layered architecture that can be extended to build custom MCP servers for any API or data source.
# Clone the repository
git clone https://github.com/aashari/boilerplate-mcp-server.git
cd boilerplate-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run in different modes:
# 1. CLI Mode - Execute commands directly
npm run cli -- get-ip-details 8.8.8.8
npm run cli -- get-ip-details # Get your current IP
npm run cli -- get-ip-details 1.1.1.1 -e # With extended data
npm run cli -- get-ip-details 8.8.8.8 --jq "{ip: query, country: country}" # JMESPath filter
npm run cli -- get-ip-details 8.8.8.8 -o json # JSON output
# 2. STDIO Transport - For AI assistant integration (Claude Desktop, Cursor)
npm run mcp:stdio
# 3. HTTP Transport - For web-based integrations
npm run mcp:http
# 4. Development with MCP Inspector
npm run mcp:inspect # Auto-opens browser with debugging UI
TRANSPORT_MODE=stdio node dist/index.jsPORT env var)http://localhost:3000/mcphttp://localhost:3000/ → Returns server versionTRANSPORT_MODE=http node dist/index.jsThis boilerplate implements production-ready security measures:
127.0.0.1 (not accessible from network)isError: true flag and don't leak sensitive information📖 Complete security documentation: SECURITY.md
🔍 Security audit report: docs/AUDIT-2025-01-13.md
TOON (Token-Oriented Object Notation) is a human-readable format optimized for LLMs, reducing token usage by 30-60% compared to JSON:
status: success
query: 8.8.8.8
country: United States
city: Ashburn
lat: 39.03
lon: -77.5
Standard JSON output when --output-format json is specified:
{
"status": "success",
"query": "8.8.8.8",
"country": "United States",
"city": "Ashburn"
}
Use --jq to extract only needed fields, reducing token costs:
# Extract specific fields
npm run cli -- get-ip-details 8.8.8.8 --jq "{ip: query, country: country}"
# Output:
# ip: 8.8.8.8
# country: United States
# Nested structure
npm run cli -- get-ip-details 8.8.8.8 --jq "{location: {city: city, coords: {lat: lat, lon: lon}}}"
See JMESPath documentation for more filter examples.
src/
├── cli/ # Command-line interfaces
│ ├── index.ts # CLI entry point with Commander setup
│ └── ipaddress.cli.ts # IP address CLI commands
├── controllers/ # Business logic orchestration
│ ├── ipaddress.controller.ts # IP lookup business logic
│ └── ipaddress.formatter.ts # Response formatting
├── services/ # External API interactions
│ ├── vendor.ip-api.com.service.ts # ip-api.com service
│ └── vendor.ip-api.com.types.ts # Service type definitions
├── tools/ # MCP tool definitions (AI interface)
│ ├── ipaddress.tool.ts # IP lookup tool (inline content)
│ ├── ipaddress-link.tool.ts # IP lookup with ResourceLink pattern
│ └── ipaddress.types.ts # Tool argument schemas
├── resources/ # MCP resource definitions
│ └── ipaddress.resource.ts # IP lookup resource (URI: ip://address)
├── prompts/ # MCP prompt definitions
│ └── analysis.prompt.ts # IP analysis prompt templates
├── types/ # Global type definitions
│ └── common.types.ts # Shared interfaces (ControllerResponse, etc.)
├── utils/ # Shared utilities
│ ├── logger.util.ts # Contextual logging system
│ ├── error.util.ts # MCP-specific error formatting
│ ├── error-handler.util.ts # Error handling utilities
│ ├── config.util.ts # Environment configuration
│ ├── constants.util.ts # Version and package constants
│ ├── formatter.util.ts # Markdown formatting and response truncation
│ ├── toon.util.ts # TOON format encoding
│ ├── jq.util.ts # JMESPath filtering
│ ├── response.util.ts # Raw API response logging
│ └── transport.util.ts # HTTP transport utilities
└── index.ts # Server entry point (dual transport)
</details>
The boilerplate follows a clean, layered architecture with 6 distinct layers that promotes maintainability and clear separation of concerns:
src/cli/)get-ip-details [ipAddress] --include-extended-data --no-use-httpssrc/tools/)ip_get_details tool with optional IP address and configuration optionssrc/resources/)registerResource API with ResourceTemplate for parameterized URIsip://{ipAddress} resource template providing IP geolocation datasrc/controllers/)src/services/)src/utils/)logger.util.ts: Contextual logging (file:method context)error.util.ts: MCP-specific error formattingerror-handler.util.ts: Error handling and context buildingtransport.util.ts: HTTP/API utilities with retry logicconfig.util.ts: Environment configuration managementconstants.util.ts: Version and package constantsformatter.util.ts: Markdown formatting and response truncationtoon.util.ts: TOON format encoding (token-efficient output)jq.util.ts: JMESPath filtering for response transformationresponse.util.ts: Raw API response logging to /tmp/mcp/<project>/# Build and Clean
npm run build # Build TypeScript to dist/
npm run clean # Remove dist/ and coverage/
npm run prepare # Build + ensure executable permissions (for npm publish)
# CLI Testing
npm run cli -- get-ip-details 8.8.8.8 # Test specific IP
npm run cli -- get-ip-details --include-extended-data # Test with extended data
npm run cli -- get-ip-details --no-use-https # Test with HTTP
# MCP Server Modes
npm run mcp:stdio # STDIO transport for AI assistants
npm run mcp:http # HTTP transport on port 3000
npm run mcp:inspect # HTTP + auto-open MCP Inspector
# Testing
npm test # Run all tests (Jest)
npm run test:coverage # Generate coverage report
npm run test:cli # Run CLI-specific tests
# Code Quality
npm run lint # ESLint with TypeScript rules
npm run format # Prettier formatting
TRANSPORT_MODE: Transport mode (stdio | http, default: stdio)PORT: HTTP server port (default: 3000)DEBUG: Enable debug logging (true | false, default: false)NODE_ENV: Node environment (development | production, default: development)IPAPI_API_TOKEN: API token for ip-api.com extended data (optional, free tier available).env File# Core configuration
TRANSPORT_MODE=http
PORT=3000
DEBUG=true
NODE_ENV=development
# External API Keys
IPAPI_API_TOKEN=your_token_here
MCP Inspector: Visual tool for testing your MCP tools
npm run mcp:inspectDebug Logging: Enable with DEBUG=true environment variable
Raw Response Logging: Large API responses (>40,000 characters) are automatically logged
/tmp/mcp/<project-name>/ directory<timestamp>-<random>.txtCreate ~/.mcp/configs.json:
{
"boilerplate": {
"environments": {
"DEBUG": "true",
"TRANSPORT_MODE": "http",
"PORT": "3000"
}
}
}
</details>
Create a new service in src/services/ following the vendor-specific naming pattern:
// src/services/vendor.example-api.service.ts
import { Logger } from '../utils/logger.util.js';
import { fetchApi } from '../utils/transport.util.js';
import { ExampleApiResponse, ExampleApiRequestOptions } from './vendor.example-api.types.js';
import { createApiError, McpError } from '../utils/error.util.js';
const serviceLogger = Logger.forContext('services/vendor.example-api.service.ts');
async function get(
param?: string,
options: ExampleApiRequestOptions = {}
): Promise<ExampleApiResponse> {
const methodLogger = serviceLogger.forMethod('get');
methodLogger.debug(`Calling Example API with param: ${param}`);
try {
const url = `https://api.example.com/${param || 'default'}`;
const rawData = await fetchApi<ExampleApiResponse>(url, {
headers: options.apiKey ? { 'Authorization': `Bearer ${options.apiKey}` } : {}
});
methodLogger.debug('Received successful response from Example API');
return rawData;
} catch (error) {
methodLogger.error('Service error fetching data', error);
if (error instanceof McpError) {
throw error;
}
throw createApiError(
'Unexpected service error while fetching data',
undefined,
error
);
}
}
export default { get };
Add a controller in src/controllers/ to handle business logic with error context:
// src/controllers/example.controller.ts
import { Logger } from '../utils/logger.util.js';
import exampleService from '../services/vendor.example-api.service.js';
import { formatExample } from './example.formatter.js';
import { handleControllerError, buildErrorContext } from '../utils/error-handler.util.js';
import { ControllerResponse } from '../types/common.types.js';
import { config } from '../utils/config.util.js';
const logger = Logger.forContext('controllers/example.controller.ts');
export interface GetDataOptions {
param?: string;
includeMetadata?: boolean;
}
async function getData(
options: GetDataOptions = {}
): Promise<ControllerResponse> {
const methodLogger = logger.forMethod('getData');
methodLogger.debug(`Getting data for param: ${options.param || 'default'}`, options);
try {
// Apply business logic and defaults
const apiKey = config.get('EXAMPLE_API_TOKEN');
// Call service layer
const data = await exampleService.get(options.param, {
apiKey,
includeMetadata: options.includeMetadata ?? false
});
// Format response
const formattedContent = formatExample(data);
return { content: formattedContent };
} catch (error) {
throw handleControllerError(
error,
buildErrorContext(
'ExampleData',
'getData',
'controllers/example.controller.ts@getData',
options.param || 'default',
{ options }
)
);
}
}
export default { getData };
Create a tool definition in src/tools/ following the registration pattern:
// src/tools/example.tool.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { z } from 'zod';
import { Logger } from '../utils/logger.util.js';
import { formatErrorForMcpTool } from '../utils/error.util.js';
import exampleController from '../controllers/example.controller.js';
const logger = Logger.forContext('tools/example.tool.ts');
// Define Zod schema for tool arguments
const GetDataSchema = z.object({
param: z.string().optional().describe('Optional parameter for the API call'),
includeMetadata: z.boolean().optional().default(false)
.describe('Whether to include additional metadata in the response')
});
async function handleGetData(args: Record<string, unknown>) {
const methodLogger = logger.forMethod('handleGetData');
try {
methodLogger.debug('Tool example_get_data called', args);
// Validate arguments with Zod
const validatedArgs = GetDataSchema.parse(args);
// Call controller
const result = await exampleController.getData({
param: validatedArgs.param,
includeMetadata: validatedArgs.includeMetadata
});
// Return MCP-formatted response
return {
content: [
{
type: 'text' as const,
text: result.content
}
]
};
} catch (error) {
methodLogger.error('Tool example_get_data failed', error);
return formatErrorForMcpTool(error);
}
}
// Registration function using the modern registerTool API (SDK v1.23.0)
function registerTools(server: McpServer) {
const registerLogger = logger.forMethod('registerTools');
registerLogger.debug('Registering example tools...');
// SDK best practices: 'title' for UI display name, 'description' for detailed info
server.registerTool(
'example_get_data',
{
title: 'Get Example Data', // Display name for UI (e.g., 'Get Example Data')
description: `Gets data from the Example API with optional parameter.
Use this tool to fetch example data. Returns formatted data as Markdown.`,
inputSchema: GetDataSchema,
},
handleGetData
);
registerLogger.debug('Example tools registered successfully');
}
export default { registerTools };
Create a CLI command in src/cli/ following the Commander pattern:
// src/cli/example.cli.ts
import { Command } from 'commander';
import { Logger } from '../utils/logger.util.js';
import exampleController from '../controllers/example.controller.js';
import { handleCliError } from '../utils/error.util.js';
const logger = Logger.forContext('cli/example.cli.ts');
function register(program: Command) {
const methodLogger = logger.forMethod('register');
methodLogger.debug('Registering example CLI commands...');
program
.command('get-data')
.description('Gets data from the Example API')
.argument('[param]', 'Optional parameter for the API call')
.option('-m, --include-metadata', 'Include additional metadata in response')
.action(async (param, options) => {
const actionLogger = logger.forMethod('action:get-data');
try {
actionLogger.debug('CLI get-data called', { param, options });
const result = await exampleController.getData({
param,
includeMetadata: options.includeMetadata || false
});
console.log(result.content);
} catch (error) {
handleCliError(error);
}
});
methodLogger.debug('Example CLI commands registered successfully');
}
export default { register };
Update the entry points to register your new components:
// 1. Register CLI in src/cli/index.ts
import exampleCli from './example.cli.js';
export async function runCli(args: string[]) {
// ... existing setup code ...
// Register CLI commands
exampleCli.register(program); // Add this line
// ... rest of function
}
// 2. Register Tools in src/index.ts
import exampleTools from './tools/example.tool.js';
// In the startServer function, after existing registrations:
exampleTools.registerTools(serverInstance);
Create a resource in src/resources/ using the modern registerResource API:
// src/resources/example.resource.ts
import { McpServer, ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
import { Logger } from '../utils/logger.util.js';
import exampleController from '../controllers/example.controller.js';
import { formatErrorForMcpResource } from '../utils/error.util.js';
const logger = Logger.forContext('resources/example.resource.ts');
function registerResources(server: McpServer) {
const registerLogger = logger.forMethod('registerResources');
registerLogger.debug('Registering example resources...');
// Use registerResource with ResourceTemplate for parameterized URIs (SDK v1.23.0)
server.registerResource(
'example-data',
new ResourceTemplate('example://{param}', { list: undefined }),
{
title: 'Example Data', // Display name for UI
description: 'Retrieve example data by parameter'
},
async (uri, variables) => {
const methodLogger = logger.forMethod('exampleResource');
try {
// Extract parameter from template variables
const param = variables.param as string | undefined;
methodLogger.debug('Example resource called', { uri: uri.href, param });
const result = await exampleController.getData({ param });
return {
contents: [
{
uri: uri.href,
text: result.content,
mimeType: 'text/markdown'
}
]
};
} catch (error) {
methodLogger.error('Resource error', error);
return formatErrorForMcpResource(error, uri.href);
}
}
);
registerLogger.debug('Example resources registered successfully');
}
export default { registerResources };
</details>
The boilerplate includes a complete IP address geolocation example demonstrating all layers:
CLI Commands:
npm run cli -- get-ip-details # Get current public IP (TOON format)
npm run cli -- get-ip-details 8.8.8.8 # Get details for specific IP
npm run cli -- get-ip-details 1.1.1.1 -e # Short form with extended data
npm run cli -- get-ip-details 1.1.1.1 --include-extended-data # Long form with extended data
npm run cli -- get-ip-details 8.8.8.8 --no-use-https # Force HTTP (for free tier)
npm run cli -- get-ip-details 8.8.8.8 -o json # JSON output (short form)
npm run cli -- get-ip-details 8.8.8.8 --output-format json # JSON output (long form)
npm run cli -- get-ip-details 8.8.8.8 --jq "{ip: query, country: country}" # JMESPath filtered output
MCP Tools:
ip_get_details - IP geolocation lookup for AI assistantsip_get_details_link - Same lookup + resource link output for resource-aware clientsBoth tools share the same parameters:
ipAddress (optional): IP address to lookup (omit for current device's public IP)includeExtendedData (optional, default: false): Include ASN, host, organization data (requires API token)useHttps (optional, default: true): Use HTTPS for API callsjq (optional): JMESPath expression to filter/transform responseoutputFormat (optional, default: "toon"): Output format - "toon" or "json"Output behavior:
ip_get_details: returns one text content blockip_get_details_link: returns the same first text block plus a resource_link block (ip://<resolved-ip>)MCP Resources:
ip://{ipAddress} - IP details resource template (e.g., ip://8.8.8.8, ip://1.1.1.1)
# Optional - for extended data features
IPAPI_API_TOKEN=your_token_from_ip-api.com
# Development
DEBUG=true # Enable detailed logging
TRANSPORT_MODE=http # Use HTTP transport
PORT=3001 # Custom port
Customize Package Details:
{
"name": "your-mcp-server-name",
"version": "1.0.0",
"description": "Your custom MCP server",
"author": "Your Name",
"keywords": ["mcp", "your-domain", "ai-integration"]
}
Update Documentation: Replace IP address examples with your use case
Test Thoroughly:
npm run build && npm test
npm run cli -- your-command
npm run mcp:stdio # Test with MCP Inspector
Release: Push conventional commits to main and let semantic-release publish automatically via GitHub Actions (OIDC trusted publishing).
The boilerplate includes comprehensive testing infrastructure:
tests/ # Not present - tests are in src/
src/
├── **/*.test.ts # Co-located with source files
├── utils/ # Utility function tests
├── controllers/ # Business logic tests
├── services/ # API integration tests
└── cli/ # CLI command tests
*.util.test.ts)npm test # Run all tests
npm run test:coverage # Generate coverage report
npm run test:cli # CLI-specific tests only
⚠️ Note: MCP SDK v2 is in development (expected stable Q1 2026). This boilerplate is ready for migration with minimal changes needed.
Key v2 Changes:
@modelcontextprotocol/server and @modelcontextprotocol/clientSee MODERNIZATION.md for detailed migration guide and timeline.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key, oauth
Streaming
Yes
Data region
global
Protocol support
Requires: mcp, lang:typescript, streaming
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Sentiment, toxicity, entity extraction, PII, translation, summary, QA, fraud scoring, safety audit.
Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Structured website and review evidence for AI-assisted local-business shortlisting.
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key",
"oauth"
],
"requires": [
"mcp",
"lang:typescript",
"streaming"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": true,
"inputSchemaRef": "https://github.com/aashari/boilerplate-mcp-server#input",
"outputSchemaRef": "https://github.com/aashari/boilerplate-mcp-server#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:45:51.554Z",
"sourceUpdatedAt": "2026-02-24T19:45:51.554Z",
"freshnessSeconds": 19626504
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-10-09T23:34:16.470Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "model-context-protocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "typescript",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "claude",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "anthropic",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "llm",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "boilerplate",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "server",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "stdio",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "http",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "streamable",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "mcp-server",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:mcp|supported|profile capability:model-context-protocol|supported|profile capability:typescript|supported|profile capability:claude|supported|profile capability:anthropic|supported|profile capability:ai|supported|profile capability:llm|supported|profile capability:boilerplate|supported|profile capability:server|supported|profile capability:stdio|supported|profile capability:http|supported|profile capability:streamable|supported|profile capability:cli|supported|profile capability:mcp-server|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Aashari",
"href": "https://github.com/aashari/boilerplate-mcp-server",
"sourceUrl": "https://github.com/aashari/boilerplate-mcp-server",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:23:10.716Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "68 GitHub stars",
"href": "https://github.com/aashari/boilerplate-mcp-server",
"sourceUrl": "https://github.com/aashari/boilerplate-mcp-server",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:23:10.716Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:51.554Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key, oauth",
"href": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:51.554Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/aashari/boilerplate-mcp-server#input",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:45:51.554Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-aashari-boilerplate-mcp-server/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to @aashari/boilerplate-mcp-server and adjacent AI workflows.