Skip to main content
Glama
NishikantaRay

Renderer MCP Server

README.md
# Renderer MCP Server

<div align="center">

[![npm version](https://img.shields.io/npm/v/renderer-mcp-server.svg)](https://www.npmjs.com/package/renderer-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Model Context Protocol](https://img.shields.io/badge/MCP-Enabled-blue.svg)](https://modelcontextprotocol.io)

**AI-powered assistant for the [Renderer](https://github.com/NishikantaRay/renderer) portfolio framework**

Helps users explore documentation, validate configurations, generate templates, and customize their portfolios through natural language.

[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [Tools](#-available-tools) • [Configuration](#-configuration)

</div>

---

## 🌟 Features

- **šŸ“š Interactive Documentation** - Search and explore Renderer docs with natural language queries
- **āœ… Configuration Validation** - Validate TOML configs with detailed error messages
- **šŸŽØ Template Generation** - Generate starter templates customized to your needs
- **šŸ’” Smart Examples** - Get configuration examples with explanations
- **šŸ” Feature Discovery** - Search for specific Renderer features and capabilities
- **šŸ“– Setup Guides** - Step-by-step guides for beginners and advanced users
- **šŸ—‚ļø Repository Browser** - Browse Renderer repository files and directories

## šŸ“¦ Installation

### NPM (Recommended)

```bash
npm install -g renderer-mcp-server
```

### From Source

```bash
git clone https://github.com/NishikantaRay/renderer-mcp-server.git
cd renderer-mcp-server
npm install
npm run build
npm link
```

## šŸš€ Usage

### With Claude Desktop

1. **Install the server:**
   ```bash
   npm install -g renderer-mcp-server
   ```

2. **Configure Claude Desktop:**
   
   Edit your Claude config file:
   - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

   Add the server configuration:
   ```json
   {
     "mcpServers": {
       "renderer": {
         "command": "renderer-mcp",
         "env": {
           "GITHUB_TOKEN": "your_github_token_here"
         }
       }
     }
   }
   ```

3. **Get a GitHub Token (Optional but recommended):**
   - Go to https://github.com/settings/tokens
   - Create a new token with `repo` scope
   - Add it to the config above

4. **Restart Claude Desktop**

### With Other MCP Clients

Any MCP-compatible client can use this server:

```typescript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";

const client = new Client({
  name: "my-client",
  version: "1.0.0",
});

// Connect to the server
await client.connect({
  command: "renderer-mcp",
  env: {
    GITHUB_TOKEN: process.env.GITHUB_TOKEN,
  },
});
```

## šŸ› ļø Available Tools

### 1. **explore_renderer_docs**
Search and explore Renderer framework documentation.

```
Query: "How do I configure dark mode?"
Returns: Relevant documentation sections
```

### 2. **get_renderer_file**
Get contents of specific files from the Renderer repository.

```
Path: "config/home.toml"
Returns: File contents with syntax highlighting
```

### 3. **list_renderer_files**
List files and directories in the Renderer repository.

```
Path: "config"
Returns: Directory listing with file types
```

### 4. **validate_toml_config**
Validate TOML configuration files.

```
Config Content: "[profile]\nname = 'John'"
Config Type: "home"
Returns: Validation results with suggestions
```

### 5. **generate_starter_template**
Generate customized starter templates.

```
Input: { name: "John Doe", github: "johndoe", include_projects: true }
Returns: Complete project structure and configs
```

### 6. **get_config_example**
Get example configurations with explanations.

```
Config Type: "projects"
Returns: Annotated example configuration
```

### 7. **search_renderer_features**
Search for specific features.

```
Feature: "analytics"
Returns: Feature documentation and examples
```

### 8. **get_setup_guide**
Get setup instructions.

```
Level: "beginner" | "advanced"
Returns: Step-by-step setup guide
```

## šŸ“‹ Configuration

### Environment Variables

- **GITHUB_TOKEN** (optional): GitHub personal access token for higher API rate limits
  - Without token: 60 requests/hour
  - With token: 5000 requests/hour
  - Scope required: `public_repo`

### Custom Repository

By default, the server connects to `NishikantaRay/renderer`. To use a fork or different repository:

Edit [src/constants.ts](src/constants.ts):

```typescript
export const DEFAULT_CONFIG: RendererConfig = {
    owner: "your-username",
    repo: "your-repo",
    branch: "main"
};
```

## šŸ“ Project Structure

```
renderer-mcp-server/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts           # Main server entry point
│   ā”œā”€ā”€ types.ts           # TypeScript type definitions
│   ā”œā”€ā”€ constants.ts       # Tool definitions and config
│   ā”œā”€ā”€ github.ts          # GitHub API interactions
│   └── tools/             # Tool implementations
│       ā”œā”€ā”€ validator.ts   # TOML validation
│       ā”œā”€ā”€ template.ts    # Template generation
│       ā”œā”€ā”€ examples.ts    # Configuration examples
│       ā”œā”€ā”€ features.ts    # Feature search
│       └── guides.ts      # Setup guides
ā”œā”€ā”€ build/                 # Compiled JavaScript
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md
```

## šŸ”§ Development

### Prerequisites

- Node.js 18 or higher
- npm or yarn
- TypeScript 5.3+

### Setup

```bash
# Clone the repository
git clone https://github.com/NishikantaRay/renderer-mcp-server.git
cd renderer-mcp-server

# Install dependencies
npm install

# Build
npm run build

# Watch mode (for development)
npm run watch
```

### Testing

```bash
# Build the project
npm run build

# Test with MCP inspector
npx @modelcontextprotocol/inspector renderer-mcp
```

## šŸ“ Example Interactions

### Generate a Portfolio

**User:** "Create a portfolio template for John Doe with GitHub and LinkedIn"

**Server:** Generates complete starter template with:
- Customized TOML configurations
- Project structure
- Setup instructions
- Next steps

### Validate Configuration

**User:** "Validate this TOML: [profile]\nname = 'Jane'"

**Server:** 
- āœ… Validates syntax
- Checks for required fields
- Provides suggestions
- Shows parsed structure

### Explore Features

**User:** "How do I add dark mode to my portfolio?"

**Server:** Returns documentation about:
- Theme configuration
- Available options
- Implementation details
- Code examples

## šŸ¤ Contributing

Contributions are welcome! Please follow these steps:

1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes
4. Add tests if applicable
5. Commit: `git commit -m 'Add amazing feature'`
6. Push: `git push origin feature/amazing-feature`
7. Open a Pull Request

### Development Guidelines

- Follow TypeScript best practices
- Keep functions small and focused
- Add JSDoc comments for public APIs
- Update README for new features
- Test thoroughly before submitting

## šŸ“„ License

MIT License - see [LICENSE](LICENSE) file for details

## šŸ”— Related Projects

- **[Renderer](https://github.com/NishikantaRay/renderer)** - The portfolio framework this server supports
- **[Model Context Protocol](https://modelcontextprotocol.io)** - The protocol specification
- **[MCP SDK](https://github.com/modelcontextprotocol/sdk)** - Official MCP SDK

## šŸ’¬ Support

- **Issues**: [GitHub Issues](https://github.com/NishikantaRay/renderer-mcp-server/issues)
- **Discussions**: [GitHub Discussions](https://github.com/NishikantaRay/renderer-mcp-server/discussions)
- **Renderer Docs**: [Documentation](https://github.com/NishikantaRay/renderer/tree/main/docs)

## šŸ™ Acknowledgments

- Built with [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
- Powers the [Renderer](https://github.com/NishikantaRay/renderer) framework
- Inspired by the MCP community

---

<div align="center">

**Made with ā¤ļø by [Nishikanta Ray](https://github.com/NishikantaRay)**

⭐ Star this repo if you find it helpful!

</div>

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

Most tools are clearly distinct by resource and action, such as listing files versus getting file contents. The main overlap is between explore_renderer_docs and search_renderer_features, which both surface framework information and could be confused.

Naming Consistency5/5

All tool names use lowercase snake_case and follow a consistent verb_noun pattern, e.g., get_renderer_file, list_renderer_files, validate_toml_config. This makes the set predictable and easy to navigate.

Tool Count5/5

Eight tools is a well-scoped size for a framework documentation and configuration server. Each tool addresses a meaningful task without unnecessary redundancy or bloat.

Completeness4/5

The tool set covers documentation exploration, file access, config validation, examples, templates, and setup guidance, which addresses the core workflow. A minor gap is that there is no direct tool for rendering or previewing a project, but that may be outside the server's stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues