Skip to main content
Glama

FilDOS MCP Server

by ArqosLabs
ARCHITECTURE.md•2.73 kB
# FilDOS MCP - Modular Structure ## šŸ“ Project Structure ``` src/ ā”œā”€ā”€ index.ts # Main entry point - Server initialization ā”œā”€ā”€ types.ts # TypeScript type definitions ā”œā”€ā”€ config.ts # Environment configuration and validation ā”œā”€ā”€ blockchain.ts # Blockchain connection setup ā”œā”€ā”€ schemas.ts # Zod validation schemas ā”œā”€ā”€ tools.ts # Tool definitions for MCP ā”œā”€ā”€ handlers.ts # Request handlers for each tool └── utils/ ā”œā”€ā”€ ownership.ts # Ownership validation utilities ā”œā”€ā”€ folders.ts # Folder management utilities └── storage.ts # File storage utilities ``` ## šŸ“„ File Descriptions ### `index.ts` Main entry point that: - Creates the MCP server instance - Registers request handlers - Starts the server on stdio transport ### `types.ts` Contains all TypeScript interfaces: - `FolderInfo` - Folder metadata structure - `FileInfo` - File metadata structure - `UploadResult` - File upload response - `EnvConfig` - Environment configuration type ### `config.ts` Handles environment configuration: - Loads `.env` file - Validates required environment variables using Zod - Exports validated config - Provides helpful error messages for missing config ### `blockchain.ts` Blockchain initialization: - Sets up ethers.js provider - Initializes wallet - Creates contract instance with ABI - Exports blockchain objects for use across the app ### `schemas.ts` Zod validation schemas for all tools: - Input validation for each tool - Type-safe parameter parsing - Default value handling ### `tools.ts` Tool definitions array: - Defines all available MCP tools - Specifies input schemas - Provides descriptions for each tool ### `handlers.ts` Request handlers for each tool ### `utils/ownership.ts` Ownership validation utilities: - `validateOwnership` - Verifies token ownership ### `utils/synapse.ts` Synapse SDK utilities ### `utils/storage.ts` Storage and AI utilities: - `uploadFileToFilecoin` - Handles file uploads ## šŸ”„ Import Flow ``` index.ts ā”œā”€ā”€ config.ts (auto-initialized) ā”œā”€ā”€ blockchain.ts (auto-initialized) ā”œā”€ā”€ tools.ts └── handlers.ts ā”œā”€ā”€ schemas.ts ā”œā”€ā”€ blockchain.ts ā”œā”€ā”€ config.ts └── utils/ ā”œā”€ā”€ ownership.ts ā”œā”€ā”€ synapse.ts └── storage.ts ``` ## šŸ”§ Adding a New Tool 1. Add type definitions to `types.ts` (if needed) 2. Add validation schema to `schemas.ts` 3. Add tool definition to `tools.ts` 4. Add handler function to `handlers.ts` 5. Add case to `handleToolCall` switch statement

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ArqosLabs/FilDOS-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server