The DEAF-FIRST Platform includes five Model Context Protocol (MCP) servers that provide programmatic access to various services through a standardized interface.
mbtq://tools/deafauth — identity verification protocol
∙ mbtq://tools/pinksync — accessibility protocol
∙ mbtq://tools/fibronrose — trust query protocol
∙ mbtq://tools/magicians — agent dispatch (recommend-only, enforced at protocol level)
Transport: stdio locally, Cloudflare Worker SSE at edge — with PinkSync as the reliability layer in between.
Service: Authentication and User Management
Location: services/deafauth/dist/mcp-server.js
-
authenticate_user: Authenticate a user with username and password
- Input:
username(string),password(string) - Output: Authentication token and user info
- Input:
-
create_user: Create a new user account with accessibility preferences
- Input:
username(string),password(string),email(string),accessibilityPreferences(object) - Output: User ID and profile
- Input:
-
get_user: Get user information by user ID
- Input:
userId(string) - Output: User profile with accessibility preferences
- Input:
# Build and run
npm run build --workspace=services/deafauth
node services/deafauth/dist/mcp-server.jsService: Real-time Data Synchronization
Location: services/pinksync/dist/mcp-server.js
-
sync_data: Synchronize data across connected clients
- Input:
channel(string),data(object) - Output: Sync confirmation with timestamp
- Input:
-
subscribe_channel: Subscribe to a synchronization channel
- Input:
channel(string) - Output: Subscription ID
- Input:
-
get_sync_status: Get current synchronization status
- Input: None
- Output: Connection status and metrics
npm run build --workspace=services/pinksync
node services/pinksync/dist/mcp-server.jsService: Mathematical Optimization Engine
Location: services/fibonrose/dist/mcp-server.js
-
optimize_schedule: Optimize task scheduling using Fibonacci-based algorithms
- Input:
tasks(array of {id, duration, priority}) - Output: Optimized schedule with efficiency score
- Input:
-
calculate_fibonacci: Calculate Fibonacci number for a given position
- Input:
n(number) - Output: Fibonacci value at position n
- Input:
-
golden_ratio_analysis: Perform golden ratio analysis for optimization
- Input:
value(number) - Output: Golden ratio calculations
- Input:
npm run build --workspace=services/fibonrose
node services/fibonrose/dist/mcp-server.jsService: Modular Accessibility Features
Location: services/accessibility-nodes/dist/mcp-server.js
-
get_sign_language_interpretation: Get sign language interpretation for text
- Input:
text(string),language(ASL/BSL/ISL) - Output: Video URL and gesture sequence
- Input:
-
apply_high_contrast: Apply high contrast accessibility to content
- Input:
content(string),level(low/medium/high) - Output: Enhanced content with color scheme
- Input:
-
simplify_text: Simplify complex text for better accessibility
- Input:
text(string),level(1-5) - Output: Simplified text with readability score
- Input:
-
get_accessibility_recommendations: Get accessibility recommendations
- Input:
contentType(web/document/video) - Output: Recommendations and WCAG level
- Input:
npm run build --workspace=services/accessibility-nodes
node services/accessibility-nodes/dist/mcp-server.jsService: AI-Powered Workflows
Location: ai/dist/mcp-server.js
-
process_text: Process text using AI (summarize, translate, or simplify)
- Input:
text(string),operation(summarize/translate/simplify) - Output: Processed text with confidence score
- Input:
-
generate_content: Generate accessible content using AI
- Input:
prompt(string),type(text/image/video) - Output: Generated content URL
- Input:
-
analyze_accessibility: Analyze content for accessibility issues
- Input:
content(string),contentType(string) - Output: Accessibility analysis with recommendations
- Input:
npm run build --workspace=ai
node ai/dist/mcp-server.jsThe mcp-config.json file provides configuration for all MCP servers:
{
"mcpServers": {
"deafauth": {
"command": "node",
"args": ["services/deafauth/dist/mcp-server.js"],
"description": "DeafAUTH - Accessible authentication service"
},
// ... other servers
}
}Each MCP server may require specific environment variables:
DeafAUTH:
DEAFAUTH_DATABASE_URL: PostgreSQL connection string
PinkSync:
REDIS_URL: Redis connection string
AI Services:
OPENAI_API_KEY: OpenAI API key for AI operations
npm run build# DeafAUTH
npm run mcp --workspace=services/deafauth
# PinkSync
npm run mcp --workspace=services/pinksync
# FibonRose
npm run mcp --workspace=services/fibonrose
# Accessibility Nodes
npm run mcp --workspace=services/accessibility-nodes
# AI Services
npm run mcp --workspace=aiMCP servers communicate via stdio. To use them with an MCP client:
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const transport = new StdioClientTransport({
command: 'node',
args: ['services/deafauth/dist/mcp-server.js']
});
const client = new Client({
name: 'my-client',
version: '1.0.0',
}, {
capabilities: {}
});
await client.connect(transport);
// List available tools
const tools = await client.listTools();
// Call a tool
const result = await client.callTool({
name: 'authenticate_user',
arguments: {
username: 'user@example.com',
password: 'password123'
}
});To use these MCP servers with Claude Desktop, add the following to your Claude configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"deafauth": {
"command": "node",
"args": ["/path/to/DEAF-FIRST-PLATFORM/services/deafauth/dist/mcp-server.js"]
},
"pinksync": {
"command": "node",
"args": ["/path/to/DEAF-FIRST-PLATFORM/services/pinksync/dist/mcp-server.js"]
},
"fibonrose": {
"command": "node",
"args": ["/path/to/DEAF-FIRST-PLATFORM/services/fibonrose/dist/mcp-server.js"]
},
"accessibility-nodes": {
"command": "node",
"args": ["/path/to/DEAF-FIRST-PLATFORM/services/accessibility-nodes/dist/mcp-server.js"]
},
"ai": {
"command": "node",
"args": ["/path/to/DEAF-FIRST-PLATFORM/ai/dist/mcp-server.js"]
}
}
}To add a new tool to an MCP server:
- Define the tool schema in the tools array
- Implement the tool handler in the CallToolRequestSchema handler
- Add input validation using Zod
- Return properly formatted responses
Example:
const tools: Tool[] = [
{
name: 'my_new_tool',
description: 'Description of what this tool does',
inputSchema: {
type: 'object',
properties: {
param1: { type: 'string', description: 'Parameter description' }
},
required: ['param1']
}
}
];
// In the handler
case 'my_new_tool': {
const { param1 } = MyToolSchema.parse(args);
// Tool implementation
return {
content: [
{
type: 'text',
text: JSON.stringify({ result: 'success' })
}
]
};
}Test MCP servers by running them and sending test inputs:
# Build the server
npm run build --workspace=services/deafauth
# Run in test mode (manual testing via stdio)
echo '{"method":"tools/list","id":1}' | node services/deafauth/dist/mcp-server.js- Ensure all dependencies are installed:
npm install - Build the project:
npm run build - Check environment variables are set correctly
- Verify the tool name matches exactly
- Check that the server has been built recently
- Review the server logs for errors
- Ensure the server is running
- Check that the client is using the correct transport
- Verify file paths in configuration
Each MCP server:
- Uses the
@modelcontextprotocol/sdkfor standardized communication - Implements stdio transport for IPC
- Validates inputs using Zod schemas
- Returns structured JSON responses
- Handles errors gracefully
- Never expose sensitive credentials in MCP configuration
- Use environment variables for secrets
- Validate all inputs before processing
- Implement rate limiting for production use
- Log all MCP operations for audit trails
For issues or questions:
- Check the main README.md
- Review the infrastructure.md for architecture details
- Open an issue on GitHub
MIT License - See LICENSE file for details