open-index/open-npm huggingface dataset:
npm package: @scion-scxml/vm-browserify
Description: vm module for the browser
Author: James Halliday
Latest version: 0.0.31

# vm-browserify

emulate node's vm module for the browser

[![testling badge](https://ci.testling.com/substack/vm-browserify.png)](https://ci.testling.com/substack/vm-browserify)

# example

Just write some client-side javascript:

``` js
var vm = require('vm');

$(function () {
    var res = vm.runInNewContext('a + 5', { a : 100 });
    $('#res').text(res);
});
```

compile it with [browserify](http://github.com/substack/node-browserify):

```
browserify entry.js -o bundle.js
```

then whip up some html:

``` html
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="/bundle.js"></script>
  </head>
  <body>
    result = <span id="res"></span>
  </body>
</html>
```

and when you load the page you should see:

```
result = 105
```

# methods

## vm.runInNewContext(code, context={})

Evaluate some `code` in a new iframe with a `context`.

Contexts are like wrapping your code in a `with()` except slightly less terrible
because the code is sandboxed into a new iframe.

# install

This module is depended upon by browserify, so you should just be able to
`require('vm')` and it will just work. However if you want to use this module
directly you can install it with [npm](http://npmjs.org):

```
npm install vm-browserify
```

# license

MIT
npm package: @scion-scxml/xmllint
Description: Online demo at http://syssgx.github.com/xml.js/
Author: kripken
Latest version: 0.1.26


Online demo at http://syssgx.github.com/xml.js/

This package exports the `xmllint` object which is an Emscripten port of
libxml2's `xmllint` command for use in the browser or node.

##### API #####

```javascript

Object xmllint.validateXML({
	xml: "String",
	schema: "String" || ["String", "String", ...]
});

```

The return value Object has one property `errors` which is either null,
in the case of no errors, or an Array of error strings....eg:

```javascript

if (!xmllint.validateXML(opts).errors) {
	//there were no errors.
}

```

Usable with Browserify via `browserify-shim`.

#### Building xmllint from source ####

Install emscripten.

```
	git clone
	git submodule init
	git submodule update
	./script/clean
	./script/libxml2
	./script/compile
	./script/test
```

There are also equivalent `gulp` tasks.
npm package: @scioservices/advanced-search-library
Description: Made with create-react-library
Latest version: 3.0.0

# advanced-search-library

> Made with create-react-library

[![NPM](https://img.shields.io/npm/v/advanced-search-library.svg)](https://www.npmjs.com/package/advanced-search-library) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save advanced-search-library
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from 'advanced-search-library'
import 'advanced-search-library/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

## License

MIT © [](https://github.com/)
npm package: @scioservices/upload-component
Description: Made with create-react-library
Author: vasdimako
Latest version: 2.4.1

# upload-component

> Made with create-react-library

[![NPM](https://img.shields.io/npm/v/upload-component.svg)](https://www.npmjs.com/package/upload-component) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save upload-component
```

## Usage

```jsx
import React, { Component } from 'react'

import MyComponent from 'upload-component'
import 'upload-component/dist/index.css'

class Example extends Component {
  render() {
    return <MyComponent />
  }
}
```

## License

MIT © [vasdimako](https://github.com/vasdimako)
npm package: @scip/tool-browser-api
Description: LLM will use browser api as tool
Author: JacobLinCool
Latest version: 0.0.1

# SCIP

Simple Conversation and Interaction Protocol for LLM.

```mermaid
sequenceDiagram
    participant C as Client
    participant S as Gate
    participant LLM as 3rd Party LLM Service

    C->>S: Send query with conversation history
    S->>LLM: Forward query

    loop Process streaming chunks
        %% Streaming response from LLM indicated with a double‐equal arrow
        LLM->>S: Stream response chunk or tool use directive
        alt Error in streaming response
            LLM->>S: Stream error message
            S->>C: Forward error to client
            Note right of S: End streaming chunks loop
        else Tool use detected
            loop Tool use chain
                alt Server tool use
                    S->>S: Execute server-side tool
                    alt Error executing server-side tool
                        S->>S: Handle error (log, retry, etc.)
                        S->>LLM: Report tool error
                        LLM->>S: Stream error follow-up directive
                    end
                else Client tool use (forwarded from server)
                    S->>C: Forward tool use request
                    C->>C: Execute client-side tool
                    alt Error executing client-side tool
                        C->>S: Return error result
                        S->>LLM: Report tool error
                        LLM->>S: Stream error follow-up directive
                    else No error
                        C->>S: Return tool use result
                    end
                end
                S->>LLM: Update context with tool result (or error)
                LLM->>S: Stream follow-up directive or response chunk
                alt Error in follow-up directive
                    LLM->>S: Stream error follow-up message
                    S->>C: Forward error to client
                    Note right of S: End tool chain loop
                else No further tool use
                    Note right of S: End tool chain loop
                end
            end
        else Normal response chunk
            S->>C: Stream response chunk
        end
    end
```
npm package: @scip/tool-open-website
Description: LLM will use browser api as tool
Author: JacobLinCool
Latest version: 0.0.1

# SCIP

Simple Conversation and Interaction Protocol for LLM.

```mermaid
sequenceDiagram
    participant C as Client
    participant S as Gate
    participant LLM as 3rd Party LLM Service

    C->>S: Send query with conversation history
    S->>LLM: Forward query

    loop Process streaming chunks
        %% Streaming response from LLM indicated with a double‐equal arrow
        LLM->>S: Stream response chunk or tool use directive
        alt Error in streaming response
            LLM->>S: Stream error message
            S->>C: Forward error to client
            Note right of S: End streaming chunks loop
        else Tool use detected
            loop Tool use chain
                alt Server tool use
                    S->>S: Execute server-side tool
                    alt Error executing server-side tool
                        S->>S: Handle error (log, retry, etc.)
                        S->>LLM: Report tool error
                        LLM->>S: Stream error follow-up directive
                    end
                else Client tool use (forwarded from server)
                    S->>C: Forward tool use request
                    C->>C: Execute client-side tool
                    alt Error executing client-side tool
                        C->>S: Return error result
                        S->>LLM: Report tool error
                        LLM->>S: Stream error follow-up directive
                    else No error
                        C->>S: Return tool use result
                    end
                end
                S->>LLM: Update context with tool result (or error)
                LLM->>S: Stream follow-up directive or response chunk
                alt Error in follow-up directive
                    LLM->>S: Stream error follow-up message
                    S->>C: Forward error to client
                    Note right of S: End tool chain loop
                else No further tool use
                    Note right of S: End tool chain loop
                end
            end
        else Normal response chunk
            S->>C: Stream response chunk
        end
    end
```
npm package: @scipen/aminer-mcp-server
Description: AMiner MCP Server - Academic Paper Search Service
Author: Scipen AI
Latest version: 0.1.0

# AMiner MCP 服务器

> **语言 / Language:** [🇨🇳 中文](README.md) | [🇺🇸 English](README.en.md)

基于模型上下文协议（MCP）的服务器，通过 AMiner API 提供强大的学术论文搜索和分析功能。

## 🌟 功能特性

### 🔍 搜索工具
- **关键词搜索** (`search_papers_by_keyword`) - 通过关键词搜索论文
- **期刊搜索** (`search_papers_by_venue`) - 搜索特定期刊/会议的论文
- **作者搜索** (`search_papers_by_author`) - 搜索特定作者的论文
- **高级搜索** (`search_papers_advanced`) - 多条件组合搜索

### 🤖 AI 助手
- **论文搜索助手** (`paper_search_assistant`) - 学术研究辅助的 AI 提示模板

### ⚙️ 搜索选项
- 分页支持（页码、每页数量）
- 排序选项（按年份或引用数）
- 详细论文信息展示
- 专业学术格式的英文界面


## 🔧 MCP 客户端配置

添加到您的 MCP 客户端配置文件：

```json
{
  "mcpServers": {
    "aminer": {
      "command": "npx",
      "args": ["-y", "@scipen/aminer-mcp-server"],
      "env": {
        "AMINER_API_KEY": "YOUR_AMINER_API_KEY"
      }
    }
  }
}
```

## 🚀 手动运行

```bash
# 设置您的 AMiner API 密钥：
export AMINER_API_KEY="your_aminer_api_key_here"
# 使用 npx 启动
npx -y @scipen/aminer-mcp-server
```


## 📚 工具列表

### search_papers_by_keyword

通过关键词搜索学术论文。

**参数：**
- `keyword` (字符串，必需): 搜索关键词
- `page` (数字，可选): 页码，默认 0
- `size` (数字，可选): 每页论文数，默认 10，最大 10
- `order` (字符串，可选): 排序方式：'year' 或 'n_citation'

**示例：**
```json
{
  "keyword": "深度学习",
  "page": 0,
  "size": 5,
  "order": "n_citation"
}
```

### search_papers_by_venue

搜索特定期刊/会议发表的论文。

**参数：**
- `venue` (字符串，必需): 期刊/会议名称
- `page` (数字，可选): 页码，默认 0
- `size` (数字，可选): 每页论文数，默认 10，最大 10
- `order` (字符串，可选): 排序方式：'year' 或 'n_citation'

**示例：**
```json
{
  "venue": "Nature",
  "page": 0,
  "size": 10,
  "order": "year"
}
```

### search_papers_by_author

搜索特定作者发表的论文。

**参数：**
- `author` (字符串，必需): 作者姓名
- `page` (数字，可选): 页码，默认 0
- `size` (数字，可选): 每页论文数，默认 10，最大 10
- `order` (字符串，可选): 排序方式：'year' 或 'n_citation'

**示例：**
```json
{
  "author": "Geoffrey Hinton",
  "page": 0,
  "size": 10
}
```

### search_papers_advanced

支持多条件的高级搜索。

**参数：**
- `keyword` (字符串，可选): 搜索关键词
- `venue` (字符串，可选): 期刊/会议名称
- `author` (字符串，可选): 作者姓名
- `page` (数字，可选): 页码，默认 0
- `size` (数字，可选): 每页论文数，默认 10，最大 10
- `order` (字符串，可选): 排序方式：'year' 或 'n_citation'

**注意：** 必须提供 keyword、venue 或 author 中的至少一个。

**示例：**
```json
{
  "keyword": "自然语言处理",
  "author": "Yann LeCun",
  "page": 0,
  "size": 5,
  "order": "n_citation"
}
```

## 🎯 提示模板

### paper_search_assistant

学术研究的 AI 助手提示模板。

**参数：**
- `research_topic` (字符串，必需): 研究主题或领域
- `search_focus` (字符串，可选): 搜索重点
  - `recent`: 关注最新论文
  - `highly_cited`: 关注高引用论文
  - `comprehensive`: 平衡搜索（默认）

**示例：**
```json
{
  "research_topic": "计算机视觉中的注意力机制",
  "search_focus": "highly_cited"
}
```

## 🛠️ 开发

### 项目结构

```
src/
├── index.ts          # 主服务器文件
├── aminer-client.ts  # AMiner API 客户端
└── types.ts          # 类型定义
```

### 可用脚本

- `pnpm run build` - 构建项目
- `pnpm run start` - 启动服务
- `pnpm run dev` - 开发模式
- `pnpm run lint` - 代码检查
- `pnpm test` - 运行测试

### 技术栈

- **运行时**: Node.js 18+
- **语言**: TypeScript
- **框架**: Model Context Protocol SDK
- **包管理器**: pnpm
- **API**: AMiner 开放平台 API
- **协议**: JSON-RPC 2.0 (MCP)

## 📄 许可证

MIT 许可证

## 🤝 贡献

欢迎提交 Issues 和 Pull Requests！

## 📞 支持

如有问题和支持需求, 请添加小助手的企业微信：

<img src="qrcode.jpg" alt="企业微信二维码" width="200" />