Spaces:
Configuration error
MCP Server Documentation
Overview
The DEAF-FIRST Platform includes five Model Context Protocol (MCP) servers that provide programmatic access to various services through a standardized interface.
Available MCP Servers
1. DeafAUTH MCP Server
Service: Authentication and User Management
Location: services/deafauth/dist/mcp-server.js
Tools
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:
Usage Example
# Build and run
npm run build --workspace=services/deafauth
node services/deafauth/dist/mcp-server.js
2. PinkSync MCP Server
Service: Real-time Data Synchronization
Location: services/pinksync/dist/mcp-server.js
Tools
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
Usage Example
npm run build --workspace=services/pinksync
node services/pinksync/dist/mcp-server.js
3. FibonRose MCP Server
Service: Mathematical Optimization Engine
Location: services/fibonrose/dist/mcp-server.js
Tools
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:
Usage Example
npm run build --workspace=services/fibonrose
node services/fibonrose/dist/mcp-server.js
4. Accessibility Nodes MCP Server
Service: Modular Accessibility Features
Location: services/accessibility-nodes/dist/mcp-server.js
Tools
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:
Usage Example
npm run build --workspace=services/accessibility-nodes
node services/accessibility-nodes/dist/mcp-server.js
5. AI MCP Server
Service: AI-Powered Workflows
Location: ai/dist/mcp-server.js
Tools
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:
Usage Example
npm run build --workspace=ai
node ai/dist/mcp-server.js
Configuration
MCP Configuration File
The 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
}
}
Environment Variables
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
Running MCP Servers
Build All Services
npm run build
Run Individual MCP Server
# 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=ai
Run with MCP Client
MCP 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'
}
});
Integration with Claude Desktop
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"]
}
}
}
Development
Adding a New Tool
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' })
}
]
};
}
Testing MCP Servers
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
Troubleshooting
Server won't start
- Ensure all dependencies are installed:
npm install - Build the project:
npm run build - Check environment variables are set correctly
Tool not found
- Verify the tool name matches exactly
- Check that the server has been built recently
- Review the server logs for errors
Connection issues
- Ensure the server is running
- Check that the client is using the correct transport
- Verify file paths in configuration
Architecture
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
Security Considerations
- 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
Support
For issues or questions:
- Check the main README.md
- Review the infrastructure.md for architecture details
- Open an issue on GitHub
License
MIT License - See LICENSE file for details