VinayakTiwari1103/MCP-smallest-ai
If you are the rightful owner of MCP-smallest-ai and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server implementation for Smallest.ai API integration.
MCP-Smallest.ai
A Model Context Protocol (MCP) server implementation for Smallest.ai API integration. This project provides a standardized interface for interacting with Smallest.ai's knowledge base management system.
Architecture
System Overview
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β β β β
β Client App βββββββ€ MCP Server βββββββ€ Smallest.ai β
β β β β β API β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
Component Details
1. Client Application Layer
- Implements MCP client protocol
- Handles request formatting
- Manages response parsing
- Provides error handling
2. MCP Server Layer
-
Protocol Handler
- Manages MCP protocol communication
- Handles client connections
- Routes requests to appropriate tools
-
Tool Implementation
- Knowledge base management tools
- Parameter validation
- Response formatting
- Error handling
-
API Integration
- Smallest.ai API communication
- Authentication management
- Request/response handling
3. Smallest.ai API Layer
- Knowledge base management
- Data storage and retrieval
- Authentication and authorization
Data Flow
1. Client Request
βββΊ MCP Protocol Validation
βββΊ Tool Parameter Validation
βββΊ API Request Formation
βββΊ Smallest.ai API Call
βββΊ Response Processing
βββΊ Client Response
Security Architecture
βββββββββββββββββββ
β Client Auth β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β MCP Validation β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β API Auth β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β Smallest.ai β
βββββββββββββββββββ
Overview
This project implements an MCP server that acts as a middleware between clients and the Smallest.ai API. It provides a standardized way to interact with Smallest.ai's knowledge base management features through the Model Context Protocol.
Architecture
[Client Application] <---> [MCP Server] <---> [Smallest.ai API]
Components
-
MCP Server
- Handles client requests
- Manages API communication
- Provides standardized responses
- Implements error handling
-
Knowledge Base Tools
listKnowledgeBases
: Lists all knowledge basescreateKnowledgeBase
: Creates new knowledge basesgetKnowledgeBase
: Retrieves specific knowledge base details
-
Documentation Resource
- Available at
docs://smallest.ai
- Provides usage instructions and examples
- Available at
Prerequisites
- Node.js 18+ or Bun runtime
- Smallest.ai API key
- TypeScript knowledge
Installation
- Clone the repository:
git clone https://github.com/yourusername/MCP-smallest.ai.git
cd MCP-smallest.ai
- Install dependencies:
bun install
- Create a
.env
file in the root directory:
SMALLEST_AI_API_KEY=your_api_key_here
Configuration
Create a config.ts
file with your Smallest.ai API configuration:
export const config = {
API_KEY: process.env.SMALLEST_AI_API_KEY,
BASE_URL: 'https://atoms-api.smallest.ai/api/v1'
};
Usage
Starting the Server
bun run index.ts
Testing the Server
bun run test-client.ts
Available Tools
- List Knowledge Bases
await client.callTool({
name: "listKnowledgeBases",
arguments: {}
});
- Create Knowledge Base
await client.callTool({
name: "createKnowledgeBase",
arguments: {
name: "My Knowledge Base",
description: "Description of the knowledge base"
}
});
- Get Knowledge Base
await client.callTool({
name: "getKnowledgeBase",
arguments: {
id: "knowledge_base_id"
}
});
Response Format
All responses follow this structure:
{
content: [{
type: "text",
text: JSON.stringify(data, null, 2)
}]
}
Error Handling
The server implements comprehensive error handling:
- HTTP errors
- API errors
- Parameter validation errors
- Type-safe error responses
Development
Project Structure
MCP-smallest.ai/
βββ index.ts # MCP server implementation
βββ test-client.ts # Test client implementation
βββ config.ts # Configuration file
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript configuration
βββ README.md # This file
Adding New Tools
- Define the tool in
index.ts
:
server.tool(
"toolName",
{
param1: z.string(),
param2: z.number()
},
async (args) => {
// Implementation
}
);
- Update documentation in the resource:
server.resource(
"documentation",
"docs://smallest.ai",
async (uri) => ({
contents: [{
uri: uri.href,
text: `Updated documentation...`
}]
})
);
Security
- API keys are stored in environment variables
- All requests are authenticated
- Parameter validation is implemented
- Error messages are sanitized
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the file for details.