AetherTech MCP Server
README.md
# AetherTech MCP Server
A production-ready TypeScript MCP (Model Context Protocol) server with comprehensive tools and type safety.
## Features
- **Text Analysis Tools**: Analyze, count words, detect sentiment, extract keywords
- **Key-Value Store**: In-memory storage for temporary data
- **Resources**: System info and dynamic store access
- **Dual Transport**: Support for both stdio and HTTP (Streamable HTTP)
- **Type Safety**: Full TypeScript with Zod validation
- **Error Handling**: Comprehensive try-catch with meaningful error messages
## Installation
```bash
cd packages/mcp-server
npm install
```
## Running the Server
### Option 1: Stdio Transport (Default)
```bash
# Development mode
npm run dev:stdio
# Production mode
npm run start:stdio
```
### Option 2: HTTP Transport
```bash
# Development mode
npm run dev:http
# Production mode
npm run start:http
# With custom port
PORT=8080 npm run start:http
```
The HTTP server runs at `http://localhost:3000/mcp` (or custom PORT).
## Available Tools
### text_analysis
Analyze text with various operations.
**Input Schema:**
```typescript
{
text: string; // Required, 1-100000 chars
operation: "analyze" | "word_count" | "sentiment" | "extract_keywords"
}
```
**Example:**
```json
{
"name": "text_analysis",
"arguments": {
"text": "This is an amazing product! I love it so much.",
"operation": "sentiment"
}
}
```
### word_count
Count words in text with statistics.
**Input Schema:**
```typescript
{
text: string;
includeWhitespace?: boolean; // Default: false
}
```
### key_value_store
In-memory key-value storage.
**Input Schema:**
```typescript
{
action: "get" | "set" | "delete" | "list";
key?: string;
value?: string;
}
```
**Examples:**
Set a value:
```json
{
"name": "key_value_store",
"arguments": {
"action": "set",
"key": "user:1",
"value": "John Doe"
}
}
```
Get a value:
```json
{
"name": "key_value_store",
"arguments": {
"action": "get",
"key": "user:1"
}
}
```
List all:
```json
{
"name": "key_value_store",
"arguments": {
"action": "list"
}
}
```
## Testing with MCP Inspector
```bash
npm run inspector
```
For HTTP transport:
```bash
npx @modelcontextprotocol/inspector http://localhost:3000/mcp
```
## Configuration
| Environment Variable | Description | Default |
|---------------------|-------------|---------|
| PORT | HTTP server port | 3000 |
## Building
```bash
npm run build
```
## Type Checking
```bash
npm run typecheck
```
## Troubleshooting
### Server won't start
- Ensure Node.js 18+ is installed: `node --version`
- Verify dependencies are installed: `npm install`
### HTTP transport not connecting
- Check the port is not in use: `lsof -i :3000`
- Verify firewall settings
- Try a different port: `PORT=8080 npm run start:http`
### Tools not working
- Run MCP Inspector to verify connection
- Check server logs for errors
- Ensure valid JSON is passed to toolsTDQS
B3/5.0
Scored across 4 tools
Disambiguation3/5
Most tools are distinct, but word_count overlaps with text_analysis which already includes word counting. This could lead to confusion about which to use.
Naming Consistency4/5
All tools use snake_case, but the grammatical structure varies (noun_noun vs abbreviation_noun). No verb_noun pattern, but consistent casing and underscore use.
Tool Count3/5
Four tools is borderline low for a server that covers three unrelated domains (text, storage, network). It feels thin but not extremely so.
Completeness3/5
Each tool provides basic functionality for its domain, but there are gaps (e.g., no detail resolution for mDNS, redundant word_count tool). Overall surface is shallow.
Maintenance
ActivityStale
ResponsivenessNo issues