open-index/open-npm huggingface dataset:
npm package: @jhlee0409/openapi-sync-mcp
Description: OpenAPI Sync MCP Server - Parse, validate, and generate code from OpenAPI specs
Author: jhlee0409
Latest version: 0.2.0

# OpenAPI Sync MCP

[![CI](https://github.com/jhlee0409/openapi-sync-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/jhlee0409/openapi-sync-mcp/actions/workflows/ci.yml)
[![MCP](https://img.shields.io/badge/MCP-2025--11--25-blue)](https://modelcontextprotocol.io)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![MCP Badge](https://lobehub.com/badge/mcp/jhlee0409-openapi-sync-mcp)](https://lobehub.com/mcp/jhlee0409-openapi-sync-mcp)

A high-performance MCP server for OpenAPI specifications. Parse, diff, track dependencies, and generate code - all from your AI assistant.

**Built with Rust** for speed and minimal resource usage.

## Features

- **Dependency Graph** - Know which endpoints break when you change a schema
- **Smart Diff** - Detect breaking changes before they hit production
- **Paginated Parsing** - Handle massive specs without overwhelming context
- **24h Cache** - Fast repeated queries with HTTP cache support
- **Multi-target Codegen** - TypeScript, Rust, Python from one spec

## Quick Start

```bash
npm install -g @jhlee0409/openapi-sync-mcp
```

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "oas": {
      "command": "openapi-sync-mcp"
    }
  }
}
```

## Tools

| Tool | Description |
|------|-------------|
| `oas_parse` | Parse and validate OpenAPI spec (with pagination) |
| `oas_deps` | Find affected endpoints when a schema changes |
| `oas_diff` | Compare two spec versions, detect breaking changes |
| `oas_status` | Check cache status |
| `oas_generate` | Generate TypeScript/Rust/Python code |

### Code Generation Targets

`typescript-types` · `typescript-fetch` · `typescript-axios` · `typescript-react-query` · `rust-serde` · `rust-reqwest` · `python-pydantic` · `python-httpx`

## Installation

```bash
# npm (recommended)
npm install -g @jhlee0409/openapi-sync-mcp

# Cargo
cargo install openapi-sync-mcp

# Or download from GitHub Releases
```

## Troubleshooting

**Server not responding?**
```bash
chmod +x openapi-sync-mcp
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | openapi-sync-mcp
```

**Cache issues?**
Delete `.openapi-sync.cache.json` or use `use_cache: false`.

## Development

```bash
cargo test          # Run tests
cargo fmt --check   # Check formatting
cargo clippy        # Lint
```

## License

MIT

## Related

- [claude-plugins](https://github.com/jhlee0409/claude-plugins) - Plugin commands (`/oas:*`) for enhanced workflow
npm package: @jhleee/naverworks-ws
Description: Unified Naver Works WebSocket SDK
Author: jhleee
Latest version: 1.0.0

# naverworks-ws

네이버웍스 봇(Naver Works Bot) 개발을 위한 통합 TypeScript SDK입니다. 웹소켓 게이트웨이 서버와 클라이언트 SDK를 제공합니다.

## 주요 기능
- **통합 서버**: Ingress (웹훅 수신) 및 Gateway (웹소켓) 서버 기능 통합.
- **클라이언트 SDK**: 게이트웨이에 연결하여 이벤트를 수신하고 메시지를 전송하는 직관적인 클라이언트.
- **유연한 구조**: 단일 테넌트(직접 연결) 또는 멀티 테넌트(게이트웨이) 아키텍처 지원.
- **메시지 빌더**: 복잡한 Flex 메시지와 템플릿을 쉽게 생성할 수 있는 빌더 제공.

## 설치

```bash
npm install naverworks-ws
```

## 사용법

### 1. 서버 설정 (Server Setup)

서버는 네이버웍스 웹훅과 사용자 웹소켓 클라이언트 사이의 다리 역할을 합니다.

```typescript
import { NaverWorksServer } from 'naverworks-ws';

const server = new NaverWorksServer({
    ingressPort: 3000,      // 네이버웍스 웹훅 수신 포트
    gatewayPort: 8080,      // 웹소켓 클라이언트 연결 포트
    gatewaySecret: 'secret', // (선택) 클라이언트 연결 시 인증할 시크릿 키
    botSecret: '...',       // 네이버웍스 Bot Secret (서명 검증용)
    auth: {
        clientId: '...',
        clientSecret: '...',
        serviceAccount: '...',
        privateKey: '...',
        botId: '...'
    }
});

server.start();
```

### 1-1. 서버에서 직접 메시지 처리 (Direct Server Handling)

별도의 웹소켓 클라이언트 없이 서버 프로세스에서 직접 웹훅 이벤트를 받아 처리할 수도 있습니다.

```typescript
// 웹훅 이벤트 수신
server.on('message', async (event) => {
    console.log('Wehook 수신:', event);
    
    if (event.content && event.channelId) {
        // 직접 메시지 발송
        await server.sendMessage(event.channelId, {
            content: {
                type: 'text',
                text: `서버에서 직접 응답: ${event.content.text}`
            }
        });
    }
});
```

### 2. 클라이언트 설정 (Client Setup)

게이트웨이 서버에 연결하여 이벤트를 처리하고 메시지를 보냅니다.

```typescript
import { Client } from 'naverworks-ws';

const { NaverWorksClient } = Client;

const client = new NaverWorksClient({
    gatewayUrl: 'ws://localhost:8080',
    autoReconnect: true
});

client.on('message', (msg) => {
    console.log('메시지 수신:', msg.content.text);
    
    // 채널에 답장 보내기
    client.sendMessage(msg.source.channelId, '안녕하세요!');
});

// 연결 시작
client.login('your-bot-id', 'secret');
```

### 3. 메시지 빌더 사용 (Message Builders)

복잡한 메시지 포맷도 빌더를 통해 쉽게 작성하세요.

```typescript
import { Client } from 'naverworks-ws';
const { MessageBuilder, FlexBubbleBuilder } = Client;

const message = new MessageBuilder()
    .setFlex('알림',
        new FlexBubbleBuilder()
            .setHeader('경고')
            .addText('확인이 필요합니다!')
            .build()
    )
    .build();

client.sendMessage(channelId, message);
```