open-index/open-npm huggingface dataset:
npm package: @neigri/yapi-mcp-server
Description: YApi MCP Server - 从YApi文档链接读取接口信息并提供给大模型
Author: KO-Good-code
Latest version: 1.0.0

# YApi MCP Server (Go版本)

一个用Go语言实现的Model Context Protocol (MCP) 服务器，用于从YApi文档链接读取接口信息并提供给大模型使用。

## 特性

- 🚀 使用Go实现，性能优异
- 📦 支持通过npm/npx发布和使用
- 📖 从YApi文档链接读取单个接口信息
- 📚 获取YApi项目中所有接口列表
- 🔍 在YApi项目中搜索接口
- 🔌 支持YApi API和HTML页面解析

## 快速开始

### 方式1: 通过npx使用（推荐）

```bash
npx -y yapi-mcp-server@latest
```

### 方式2: 本地构建

```bash
# 安装Go依赖
go mod download

# 构建
make build
# 或
go build -o bin/yapi-mcp-server .

# 运行
./bin/yapi-mcp-server
```

## 在Claude Desktop中配置

在Claude Desktop的配置文件中添加：

```json
{
  "mcpServers": {
    "yapi-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "yapi-mcp-server@latest"
      ],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-instance.com",
        "YAPI_TOKEN": "your-token-optional"
      }
    }
  }
}
```

如果发布到私有npm仓库：

```json
{
  "mcpServers": {
    "yapi-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@your-scope/yapi-mcp-server@latest"
      ],
      "env": {
        "YAPI_BASE_URL": "http://your-yapi-instance.com",
        "YAPI_TOKEN": "your-token-optional"
      }
    }
  }
}
```

## 可用工具

MCP服务器提供以下工具：

### 1. get_yapi_interface

从YApi文档链接读取单个接口信息。

**参数：**
- `url` (string, 必需): YApi文档链接

### 2. get_yapi_project_interfaces

获取YApi项目中所有接口的列表。

**参数：**
- `project_url` (string, 必需): YApi项目URL或项目ID

## 环境变量

- `YAPI_BASE_URL`: YApi实例的基础URL（可选）
- `YAPI_TOKEN`: YApi访问令牌（可选，用于API访问）

## 项目结构

```
yapi-mcp-server/
├── main.go              # 主程序入口
├── yapi_parser.go       # YApi解析器实现
├── go.mod               # Go模块定义
├── package.json         # npm包配置
├── Makefile            # 构建脚本
├── scripts/
│   └── build.js        # npm构建脚本
├── README.md           # 项目说明
├── QUICKSTART.md       # 快速开始指南
└── 发布指南.md         # 发布指南
```

## 开发

### 本地开发

```bash
# 安装Go依赖
go mod download
go mod tidy

# 运行
go run .

# 构建
make build

# 构建多平台
make build-all
```

### 测试

```bash
# 运行测试（需要先编写测试）
go test ./...
```

## 发布到私有npm仓库

详细步骤请参考 [发布指南.md](./发布指南.md)

## 许可证

MIT License

## 贡献

欢迎提交Issue和Pull Request！
npm package: @neihos/react-simple-modal
Description: A simple and reusable React modal component to replace a jQuery modal.
Author: Neihos
Latest version: 0.1.2

# react-simple-modal

## Description

react-simple-modal is a simple and reusable React modal component.
It allows you to display custom content inside a modal without using jQuery.

This component was created as part of a learning project to replace a jQuery modal with a React solution.

## Prerequisites

- Node.js v18 or higher
- React v18 or higher
- A React project (Vite, CRA or similar)

## Installation

Install the plugin directly from npm:

npm install @neihos/react-simple-modal

## Usage

Example of a basic modal usage in a React component:

import { useState } from "react";
import { Modal } from "react-simple-modal";

function Example() {
  const [isOpen, setIsOpen] = useState(false);

  return (
    <>
      <button onClick={() => setIsOpen(true)}>Open modal</button>

      <Modal
        isOpen={isOpen}
        onClose={() => setIsOpen(false)}
        title="Success"
      >
        <p>The modal content is passed using children.</p>
      </Modal>
    </>
  );
}

export default Example;

| Prop name  | Type              | Description                             |
| ---------- | ----------------- | --------------------------------------- |
| `isOpen`   | boolean           | Controls whether the modal is displayed |
| `onClose`  | function          | Function called to close the modal      |
| `title`    | string (optional) | Modal title                             |
| `children` | ReactNode         | Content displayed inside the modal      |

## Notes

The modal is controlled by the parent component.

Clicking on the overlay or on the close button closes the modal.

The component is UI-only and contains no business logic.
npm package: @neil188/browserslist-config
Description: Shareable browsers list config file
Author: N Lupton
Latest version: 2.5.0

# Browserslist config

[![npm version](https://img.shields.io/npm/v/@neil188/browserslist-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/browserslist-config)
[![Travis build](https://img.shields.io/travis/Neil188/browserslist-config/master.svg?style=popout)](https://travis-ci.org/Neil188/browserslist-config)
[![NpmLicense](https://img.shields.io/npm/l/@neil188/browserslist-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/browserslist-config)
[![GitHub last commit (master)](https://img.shields.io/github/last-commit/neil188/browserslist-config/master.svg?style=popout)](https://github.com/Neil188/browserslist-config) [![Greenkeeper badge](https://badges.greenkeeper.io/Neil188/browserslist-config.svg)](https://greenkeeper.io/)

Browerslist rules for my personal projects.

## Usage

Install using:

```bash
npm install --save-dev @neil188/browserslist-config
```

Then create a browserslist entry in your package.json file

```json
  "browserslist": [
    "extends @neil188/browserslist-config"
  ]
```

plus any additional requirements such as:

```json
  "browserslist": [
    "extends @neil188/browserslist-config",
    "maintained node versions",
  ]
```

To list browser versions covered use command

```bash
npx browserslist
```

## LICENSE

MIT
npm package: @neil188/eslint-config
Description: ESLint rules
Author: N Lupton
Latest version: 1.9.0

# eslint-config

[![npm version](https://img.shields.io/npm/v/@neil188/eslint-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/eslint-config)
[![Travis build](https://img.shields.io/travis/Neil188/eslint-config/master.svg?style=popout)](https://travis-ci.org/Neil188/eslint-config)
[![NpmLicense](https://img.shields.io/npm/l/@neil188/eslint-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/eslint-config)
[![GitHub last commit (master)](https://img.shields.io/github/last-commit/neil188/eslint-config/master.svg?style=popout)](https://github.com/Neil188/eslint-config) [![Greenkeeper badge](https://badges.greenkeeper.io/Neil188/eslint-config.svg)](https://greenkeeper.io/)

ESLint rules for my personal projects.
Setup copied from [Kent C Dodds eslint-config-kentcdodds](https://github.com/kentcdodds/eslint-config-kentcdodds).
With some config settings copied from the [airbnb JavaScript Style Guide](https://github.com/airbnb/javascript).

For a guide on setting up a shareable config file see the [ESlint guide](https://eslint.org/docs/developer-guide/shareable-configs).

## Usage

Install using:

```bash
npm install --save-dev eslint @neil188/eslint-config
```

Note:
The following are included in this package so you don't need to install them yourself:

* eslint-config-prettier
* eslint-plugin-babel
* eslint-plugin-import
* eslint-plugin-jest
* eslint-plugin-jsx-a11y
* eslint-plugin-react
* eslint-plugin-security

Then in your ESLint config file extend the rules:

```json
{
    "extends": [
        "@neil188/eslint-config"
    ],
    "rules": {}
}
```

## Extra configs

To add react and jest rules use:

```json
{
    "extends": [
        "@neil188/eslint-config",
        "@neil188/eslint-config/react",
        "@neil188/eslint-config/jest"
    ]
}
```

## LICENSE

MIT
npm package: @neil188/pub-names
Description: Get random pub names
Author: N Lupton
Latest version: 2.2.1

# pub-names

[![npm version](https://img.shields.io/npm/v/@neil188/pub-names.svg?style=popout)](https://www.npmjs.com/package/@neil188/pub-names)
[![Travis build](https://img.shields.io/travis/Neil188/pub-names/master.svg?style=popout)](https://travis-ci.org/Neil188/pub-names)
[![Codecov](https://img.shields.io/codecov/c/gh/neil188/pub-names.svg?style=popout)](https://codecov.io/gh/Neil188/pub-names)
[![NpmLicense](https://img.shields.io/npm/l/@neil188/pub-names.svg?style=popout)](https://www.npmjs.com/package/@neil188/pub-names)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=popout)](https://github.com/semantic-release/semantic-release)
[![GitHub last commit (master)](https://img.shields.io/github/last-commit/neil188/pub-names/master.svg?style=popout)](https://github.com/Neil188/pub-names)

For all your random Newcastle real ale pub needs.

This library was developed from [Kent C Dodds](https://twitter.com/kentcdodds) Creating an Open Source JavaScript Library course.

## Repo Installation Instructions

1. Clone locally using:

    `git clone https://github.com/Neil188/pub-names/.git`

1. Install dependencies:

    `npm install`

1. Run build and test scripts:

    `npm run validate`

## Package installation instructions

This pacakge is distributed via npm:

``` bash
npm install @neil188/pub-names
```

### Usage

```javascript
const names = require('@neil188/pub-names');
const allNames = names.all;
const randomName = names.random();
```
npm package: @neil188/setaccesscontrol
Description: Header access control settings for CORS
Author: N Lupton
Latest version: 1.0.2

# setaccesscontrolheaders

Use to set CORS headers to allow access from a set domain, or from localhost
if the local flag is set to true

## Usage

Install using:

```bash
npm install @neil188/setaccesscontrol
```

Then in your code import `accessControl`, then intialise by setting defaultOrigin
and allowLocal parameters

```js
const { accessControl } = require('@neil188/setaccesscontrol');

const setAccessControl = accessControl('http://default.com', true)
```

now in your request function you can call your setAccessControl function with
the response object and the request origin:

```js
exports.yourapi = async (req, res) => {

    // set CORS headers
    setAccessControl(res, req.get('origin'));
```

## LICENSE

MIT
npm package: @neil188/stylelint-config
Description: Stylelint rules
Author: N Lupton
Latest version: 1.5.0

# stylelint-config

[![npm version](https://img.shields.io/npm/v/@neil188/stylelint-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/stylelint-config)
[![Travis build](https://img.shields.io/travis/Neil188/stylelint-config/master.svg?style=popout)](https://travis-ci.org/Neil188/stylelint-config)
[![NpmLicense](https://img.shields.io/npm/l/@neil188/stylelint-config.svg?style=popout)](https://www.npmjs.com/package/@neil188/stylelint-config)
[![GitHub last commit (master)](https://img.shields.io/github/last-commit/neil188/stylelint-config/master.svg?style=popout)](https://github.com/Neil188/stylelint-config) [![Greenkeeper badge](https://badges.greenkeeper.io/Neil188/stylelint-config.svg)](https://greenkeeper.io/)

Stylelint rules for my personal projects.

## Usage

Install using:

```bash
npm install --save-dev @neil188/stylelint-config
```

Note: The following are included in this package so you don't need to install them yourself:

* stylelint
* stylelint-a11y
* stylelint-order
* stylelint-no-unsupported-browser-features
* @neil188/browserslist-config

Then in your Stylelint config file extend the rules:

```js
module.exports = {
    'extends': [
        '@neil188/stylelint-config'
    ]
};
```

in package.json add the browsersList entry:

```json
  "browserslist": [
    "extends @neil188/browserslist-config"
  ]
```

## LICENSE

MIT