Skip to main content
Glama

Aether MCP Server

Warning: This project has not completed a security review and is not suitable for production use. See SECURITY_REVIEW.md for known issues.

A Model Context Protocol (MCP) server providing system utilities, file operations, data tools, a creative idea generator, prompts, and dynamic resources with bearer-token and OAuth 2.0 authentication.

Features

System Tools

  • system_info — Detailed OS, CPU, memory, and disk information (basic or full report)

File Tools

  • read_file — Read files with optional line-range support

  • write_file — Create or overwrite files

  • list_files — List directory contents with file sizes and timestamps (recursive + filter support)

Utility Tools

  • generate_uuid — Generate UUIDs (v4) in string, brackets, or URN format

  • generate_password — Generate secure passwords with customizable character sets

  • base64_handler — Encode/decode strings to/from base64

  • json_handler — Pretty-print, minify, list keys, or validate JSON

  • timestamp_converter — Convert between Unix timestamps and ISO dates; generate current timestamps

Creative Idea Tools

  • generate_idea — Generate unique business/product/startup ideas by combining random concepts, techniques, and domains

  • generate_name — Generate brandable names for products, startups, or projects

  • combine_concepts — Fuse arbitrary concepts, techniques, and domains into creative combinations

MCP Prompts

  • business_plan — Generate a structured business plan outline

  • code_review — Return a comprehensive code review checklist

  • market_analysis — Generate a market analysis framework

  • product_requirements — Generate a PRD outline

  • tech_stack_advisor — Recommend a complete technical stack

  • debug_assistant — A systematic debugging workflow

MCP Resources

  • system://hostname — System hostname

  • system://uptime — System uptime, load averages, memory/CPU summary

  • system://env — Environment variables (sensitive values redacted)

  • system://cpus — Detailed CPU architecture information

  • process://info — Current Node.js process information

  • file:///{path} — Read files within the workspace root (dynamic template resource)

Related MCP server: MCP Complete Implementation Guide

Authentication

Bearer Token (API Key)

Set AETHER_API_KEY to enable simple bearer token authentication for HTTP mode:

AETHER_API_KEY=my-secret AETHER_TRANSPORT=http node dist/index.js

Clients send Authorization: Bearer my-secret with requests.

OAuth 2.0

Set AETHER_OAUTH_CLIENT_SECRETS to enable OAuth 2.0 with a self-hosted token endpoint:

AETHER_TRANSPORT=http AETHER_OAUTH_CLIENT_SECRETS='{"my-client":"my-secret"}' \
  AETHER_PUBLIC_URL=http://127.0.0.1:3000/mcp node dist/index.js

Endpoints (auto-served when OAuth is enabled):

  • GET /.well-known/oauth-authorization-server — RFC 8414 authorization server metadata

  • GET /.well-known/oauth-protected-resource/mcp — RFC 9728 protected resource metadata

  • GET /.well-known/jwks.json — JWKS (RS256 signing keys)

  • POST /oauth/token — Token endpoint (client_credentials, authorization_code, refresh_token)

  • POST /oauth/revoke — Token and refresh token revocation

  • POST /oauth/introspect — Token introspection

  • POST /oauth/register — Dynamic client registration

  • GET /health — Health check endpoint

Token endpoint (client credentials):

curl -X POST http://127.0.0.1:3000/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=my-client&client_secret=my-secret&scope=mcp"

Returns a JWT access token plus a refresh token:

{
  "access_token": "...",
  "token_type": "Bearer",
  "issued_token_type": "urn:ietf:params:oauth:token-type:jwt",
  "expires_in": 3600,
  "scope": "mcp",
  "refresh_token": "..."
}

Refresh token (rotate access tokens without re-authenticating):

curl -X POST http://127.0.0.1:3000/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token&refresh_token=...&client_id=my-client"

Authorization code flow with PKCE:

# 1. Get authorization code
open "http://127.0.0.1:3000/oauth/authorize?response_type=code&client_id=my-client&redirect_uri=http://127.0.0.1:3000/callback&code_challenge=abc123&code_challenge_method=S256"

# 2. Exchange code for token
curl -X POST http://127.0.0.1:3000/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code&code=...&code_verifier=abc123&client_id=my-client&redirect_uri=http://127.0.0.1:3000/callback"

Use the token in the Authorization: Bearer <token> header for MCP requests.

Transports

stdio (local)

Default mode. Connects as a subprocess — used by Claude Desktop, Claude Code, Cursor, etc.

HTTP (remote)

Set AETHER_TRANSPORT=http to enable Streamable HTTP transport.

AETHER_TRANSPORT=http AETHER_PORT=3000 node dist/index.js
AETHER_TRANSPORT=http AETHER_ENABLE_SESSIONS=true node dist/index.js  # stateful

Register with http://localhost:3000/mcp in MCP clients that support HTTP/SSE transport.

Environment Variables

Variable

Default

Description

AETHER_TRANSPORT

stdio

Transport mode: stdio or http

AETHER_PORT

3000

HTTP server port

AETHER_HOST

127.0.0.1

HTTP server host

AETHER_API_KEY

Bearer token for API key auth mode

AETHER_OAUTH_CLIENT_SECRETS

JSON map of client_id: client_secret for OAuth

AETHER_PUBLIC_URL

http://host:port/mcp

Public URL for OAuth discovery

AETHER_RATE_LIMIT

100

Max requests per minute per client IP

AETHER_MAX_BODY_SIZE

1048576

Max request body size in KB (default 1MB)

AETHER_CORS_ORIGINS

http://localhost:3000,http://127.0.0.1:3000

Allowed CORS origins

AETHER_PKCE_REQUIRED

true

Require PKCE for authorization code flow

AETHER_ENABLE_SESSIONS

false

Enable stateful sessions

Security

This project is a work in progress and has not completed a security audit. Known issues are documented in SECURITY_REVIEW.md. Do not expose this server to the public internet or use it with sensitive data until the issues identified in that review have been addressed.

Prerequisites

  • Node.js 20+

Installation & Usage

Local Development

npm install

npm run dev            # stdio mode
npm run dev:http       # HTTP mode
npm run build          # compile TypeScript
npm start              # stdio mode (built)
npm run start:http     # HTTP mode (built)

Connect to an MCP Client

Claude Desktop / Claude Code (stdio mode):

{ "mcpServers": { "aether": { "command": "node", "args": ["/PATH/TO/aether-mcp/dist/index.js"] } } }

Claude Code HTTP mode:

claude mcp add aether --transport http http://localhost:3000/mcp

Testing

Unit tests (vitest + InMemoryTransport):

npm test          # watch mode
npm run test:run  # single run

MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Open http://localhost:6274 to interact with all tools, resources, and prompts in a web UI.

Project Structure

aether-mcp/
├── package.json
├── tsconfig.json
├── vitest.config.ts
├── README.md
├── SECURITY_REVIEW.md
├── .gitignore
└── src/
    ├── index.ts            # Entry point: transport selection (stdio or HTTP), HTTP server with auth
    ├── server.ts           # Server factory — registers all tools, resources, and prompts
    ├── resources.ts        # MCP resource registrations (system, process, file template)
    ├── auth.ts             # Auth: JWT tokens, refresh tokens, bearer auth gate
    ├── oauth.ts            # OAuth 2.0: discovery, token/revoke/introspect/register endpoints, PKCE
    ├── rateLimit.ts        # Rate limiter: in-memory store with per-IP tracking
    ├── prompts.ts          # 6 MCP prompts
    ├── tools/
    │   ├── system.ts       # System info tool
    │   ├── files.ts        # File read/write/list tools
    │   ├── utils.ts        # Data utility tools
    │   └── ideas.ts        # Creative idea generation tools
    └── test/
        ├── tools.test.ts     # 22 tests for all 12 tools
        ├── resources.test.ts # 13 tests for resources and templates
        ├── prompts.test.ts   # 8 tests for all 6 prompts
        └── auth.test.ts      # 4 tests for token store and auth config

License

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive utility MCP server that enables AI assistants to execute system commands, manage files, integrate with Google Sheets and Tasks, perform AI-powered text processing, and load dynamic prompts from markdown files.
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Provides a complete end-to-end MCP server implementation with file system tools, web scraping capabilities, and system information access. Includes ready-to-use configuration files and integration examples for Claude Desktop, ChatGPT, and other AI models.
    6
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive utility tools including file operations, weather information, system monitoring, mathematical calculations, text search, and safe command execution. Enables users to perform various system and data operations through a unified MCP interface with built-in security features.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides essential utility tools for text processing, file operations, hashing, temperature conversion, password generation, and date/time operations through a comprehensive MCP interface.
    MIT

Latest Blog Posts

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/alrazihi/aether-mcp'

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