Skip to main content
Glama
hungnguyen1503

Renesas FSP MCP Server

README.md
# πŸ”§ Renesas FSP MCP Server

## πŸ“‹ Overview

FSP (Firmware Support Package) MCP Server is a management and documentation search interface for **Renesas Flexible Software Package** - the software architecture for Renesas RA MCU family.

This server provides the following capabilities:
- πŸ” Search documentation from GitHub repository
- πŸ’» Discover code examples and API references
- πŸ“¦ Manage dependencies and versions
- πŸ› οΈ Support development workflow with eΒ² studio

---

## ✨ Key Features

### 1. **Documentation Search** πŸ”
Search FSP documentation from GitHub repository:
- Architecture overview
- Supported software modules
- Driver guides and HAL API references
- RTOS integration documentation
- Middleware stack documentation

### 2. **Code Examples Discovery** πŸ’»
Discover code examples for features:
- SPI, I2C, UART peripheral drivers
- ADC/DAC sampling examples
- Secure boot implementation
- FreeRTOS integration
- DMA-based data transfer

### 3. **API Reference Lookup** πŸ“š
Lookup API documentation:
- Core FSP Library (FspLib)
- Peripheral drivers (SPI, I2C, UART, etc.)
- RTOS integration APIs
- Security and cryptographic functions

### 4. **Dependency Management** πŸ“¦
Manage dependencies and versions:
- Version history tracking
- Platform compatibility matrix
- eΒ² studio version requirements
- Minimum hardware specifications

---

## πŸ—οΈ System Architecture

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         MCP Server                  β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚ Doc      β”‚ Examples β”‚ API      β”‚ β”‚
β”‚  β”‚ Search   β”‚ Discoveryβ”‚ Referenceβ”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚         ↓                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚  GitHub Repository          β”‚    β”‚
β”‚  β”‚  - Documentation            β”‚    β”‚
β”‚  β”‚  - Code Examples            β”‚    β”‚
β”‚  β”‚  - API References           β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

---

## πŸ“ Project Structure

```
fsp-mcp-server/
β”œβ”€β”€ src/                    # Source code
β”‚   β”œβ”€β”€ index.ts           # Main MCP server entry point
β”‚   └── handlers/          # Handler modules
β”‚       β”œβ”€β”€ info.ts        # FSP architecture information
β”‚       β”œβ”€β”€ version.ts     # Version management
β”‚       β”œβ”€β”€ documentation.ts  # Documentation search
β”‚       β”œβ”€β”€ examples.ts    # Code examples discovery
β”‚       β”œβ”€β”€ api-reference.ts  # API reference lookup
β”‚       └── dependencies.ts   # Dependency management
β”œβ”€β”€ schemas/               # JSON schema definitions
β”œβ”€β”€ docs/                  # Generated documentation
β”œβ”€β”€ examples/              # Usage examples
β”œβ”€β”€ package.json          # NPM configuration
β”œβ”€β”€ tsconfig.json         # TypeScript configuration
└── README.md            # This file
```

---

## πŸš€ Installation and Usage

### 1. Install dependencies

```bash
cd fsp-mcp-server
npm install
```

### 2. Build and run

```bash
# Build TypeScript code
npm run build

# Run server
npm start
```

Or run directly in development mode:

```bash
npm run dev
```

### 3. Connect to MCP Client

Add the following configuration to your MCP client (e.g., LM Studio, Claude Desktop, etc.):

```json
{
  "mcpServers": {
    "fsp-mcp-server": {
      "command": "node",
      "args": ["/path/to/fsp-mcp-server/dist/index.js"]
    }
  }
}
```

Replace `/path/to/fsp-mcp-server` with the actual absolute path to your project directory.

**For LM Studio:**
1. Open **Settings β†’ Extensions β†’ Model Context Protocol**.
2. Add a new **MCP endpoint** with the command: `node /path/to/fsp-mcp-server/dist/index.js`.
3. Set the **transport** to `stdio`.
4. Save and test the connection via **MCP Explorer**.

---

## πŸ”§ Configuration

You can customize the server via `package.json`:

```json
{
  "scripts": {
    "build": "tsc && echo 'βœ… TypeScript compilation complete: dist/index.js'",
    "build:clean": "npm run build && find dist -name '*.d.ts' -delete && echo '🧹 Cleaned .d.ts files'",
    "dev": "tsx watch src/index.ts",
    "start": "node ./dist/index.js",
    "lint": "eslint \"src/**/*.ts\"",
    "format": "prettier --write ."
  }
}
```

---

## πŸ“š References

- [FSP GitHub Repository](https://github.com/renesas/fsp)
- [Official FSP Documentation](https://renesas.github.io/fsp)
- [Renesas RA Product Page](https://www.renesas.com/ra/fsp)
- [Example Projects](https://github.com/renesas/ra-fsp-examples)

---

## πŸ“„ License

BSD 3-Clause License - See LICENSE file for details.

---

## πŸ‘¨β€πŸ’» Contributing

To contribute to this project, please:
1. Fork the repository
2. Create a branch with your feature (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

TDQS

B3.3/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: finding code examples, build info, config info, server help, architecture info, version, API reference, dependency management, and documentation search. No two tools overlap in functionality.

Naming Consistency4/5

Most tools follow a verb_noun pattern (e.g., find_code_examples, get_api_reference) or use the 'fsp_' prefix (e.g., fsp_config_info). While consistent within groups, mixing these patterns is a minor deviation.

Tool Count5/5

With 9 tools, the server is well-scoped for providing comprehensive FSP information and documentation. Each tool serves a necessary function without redundancy.

Completeness5/5

The tool set covers the full range of information needs for FSP development: code examples, build/config details, version/architecture, API reference, dependency management, and documentation search. No obvious gaps exist for an informational server.

Maintenance

ActivitySlowing
ResponsivenessSyncing