# Directory Structure
```
├── .cursor
│ └── rules
│ └── general.mdc
├── .env_example
├── .gitignore
├── docker-compose.yml
├── Dockerfile
├── LICENSE
├── package-lock.json
├── package.json
├── README.md
├── src
│ ├── index.ts
│ └── tools
│ └── VoicevoxTool.ts
├── tmp
│ └── .placehold
└── tsconfig.json
```
# Files
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
```
1 | node_modules
2 | logs
3 | dist
4 | *.wav
```
--------------------------------------------------------------------------------
/.env_example:
--------------------------------------------------------------------------------
```
1 | VOICEVOX_API_URL=http://localhost:50031
2 | VOICEVOX_SPEAKER_ID=919692871
```
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
```yaml
1 | services:
2 | voicevox-mcp-python:
3 | build: .
4 | environment:
5 | - PULSE_SERVER=/mnt/wslg/PulseServer
6 | - VOICEVOX_API_URL=http://host.docker.internal:50031
7 | - VOICEVOX_SPEAKER_ID=919692871
8 | volumes:
9 | - /mnt/wslg:/mnt/wslg
```
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
```typescript
1 | import { MCPServer } from "mcp-framework";
2 |
3 | if (process.platform != "win32") {
4 | const server = new MCPServer();
5 | server.start();
6 | } else {
7 | const server = new MCPServer({
8 | transport: {
9 | type: "sse",
10 | options: {
11 | port: 10100,
12 | endpoint: "/sse",
13 | },
14 | },
15 | });
16 | server.start();
17 | }
18 |
```
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
```json
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "module": "ESNext",
5 | "moduleResolution": "node",
6 | "outDir": "./dist",
7 | "rootDir": "./src",
8 | "strict": true,
9 | "esModuleInterop": true,
10 | "skipLibCheck": true,
11 | "forceConsistentCasingInFileNames": true
12 | },
13 | "include": [
14 | "src/**/*"
15 | ],
16 | "exclude": [
17 | "node_modules"
18 | ]
19 | }
```
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
```json
1 | {
2 | "name": "voicevox-mcp-server",
3 | "description": "",
4 | "license": "MIT",
5 | "author": "Dosugamea",
6 | "version": "1.0.0",
7 | "type": "module",
8 | "bin": {
9 | "voicevox-mcp-server": "./dist/index.js"
10 | },
11 | "scripts": {
12 | "build": "tsc && mcp-build",
13 | "watch": "tsc --watch",
14 | "start": "node dist/index.js"
15 | },
16 | "files": [
17 | "dist"
18 | ],
19 | "keywords": [
20 | "voicevox",
21 | "mcp",
22 | "server"
23 | ],
24 | "devDependencies": {
25 | "typescript": "^5.8.2",
26 | "vite": "^6.2.2"
27 | },
28 | "dependencies": {
29 | "axios": "^1.8.4",
30 | "child_process": "^1.0.2",
31 | "mcp-framework": "^0.1.29",
32 | "zod": "^3.24.2"
33 | }
34 | }
35 |
```