semvec/pypi-packages huggingface dataset:
nop-mcp 0.1.1
A no-operation MCP server that provides an empty tools list
License: MIT
Requires Python: >=3.10
Keywords: ai, mcp, model-context-protocol, server, tools

# nop-mcp

一个空操作的 MCP (Model Context Protocol) 服务器，专门设计为不实现任何工具的占位符服务器。

## 功能

- 实现完整的 MCP 服务器协议
- `list_tools` 接口返回空工具列表
- 专用于占位、测试或需要无功能MCP服务器的特殊场景

## 使用场景

- **占位符**：在系统配置中需要MCP服务器但不需要实际功能时
- **测试环境**：测试MCP客户端连接和基础协议功能
- **开发调试**：验证MCP协议实现而不受具体工具干扰
- **兼容性测试**：确保MCP客户端能正确处理无工具的服务器

## 安装

### 从 PyPI 安装（推荐）

```bash
pip install nop-mcp
```

### 本地开发安装

```bash
# 激活虚拟环境
source .venv/bin/activate

# 依赖已预装，直接使用即可
```

## 使用方法

### 直接运行

```bash
# 从PyPI安装后
nop-mcp

# 或使用模块方式
python -m nop_mcp.server

# 本地开发时使用便捷脚本
python run_server.py
```

### 在 Claude Desktop 中配置

在 `~/Library/Application Support/Claude/claude_desktop_config.json` 中添加：

```json
{
    "mcpServers": {
        "nop-mcp": {
            "command": "nop-mcp"
        }
    }
}
```

或者如果是本地开发版本：

```json
{
    "mcpServers": {
        "nop-mcp": {
            "command": "python",
            "args": [
                "-m", 
                "nop_mcp.server"
            ],
            "cwd": "/path/to/your/nop-mcp"
        }
    }
}
```

## 开发

```bash
# 激活环境
source .venv/bin/activate

# 运行测试
python -m pytest tests/ -v

# 代码格式化
python -m black .

# 代码检查
python -m flake8 nop_mcp tests run_server.py --max-line-length=88
```

## 发布到 PyPI

项目包含完整的 PyPI 发布脚本：

```bash
# 快速发布到测试PyPI（推荐首次使用）
./scripts/quick-start.sh

# 或分步操作：
# 1. 构建包
./scripts/build.sh

# 2. 上传到测试PyPI
./scripts/upload-test.sh

# 3. 上传到正式PyPI
./scripts/upload.sh

# 清理构建文件
./scripts/clean.sh
```

详细发布指南请参阅 [PUBLISH.md](PUBLISH.md)。

## 项目结构

```
nop-mcp/
├── nop_mcp/              # 主包
│   ├── __init__.py       # 包初始化
│   └── server.py         # 空操作MCP服务器实现
├── tests/                # 测试代码
│   ├── __init__.py
│   └── test_server.py    # 服务器测试
├── scripts/              # 发布脚本
│   ├── build.sh          # 构建脚本
│   ├── upload.sh         # 上传到PyPI
│   ├── upload-test.sh    # 上传到测试PyPI
│   ├── clean.sh          # 清理脚本
│   └── quick-start.sh    # 快速开始脚本
├── .venv/                # 虚拟环境（Python 3.13）
├── .gitignore            # Git忽略文件
├── LICENSE               # MIT许可证
├── PUBLISH.md            # 发布指南
├── pyproject.toml        # 项目配置
├── README.md             # 项目说明
├── run_server.py         # 便捷启动脚本
└── USAGE.md              # 详细使用说明
```

## 验证

项目已完全配置并验证：

- ✅ 实现完整的MCP协议
- ✅ 返回空工具列表
- ✅ 支持标准stdio传输
- ✅ 所有测试通过
- ✅ 代码质量检查通过
- ✅ PyPI发布就绪
evapro 1.3.0
遍历lims数据库，把新下的lims任务单添加到anneva监控
License: MIT
Requires Python: <4.0,>=3.8.1

# evapro 命令行工具使用说明

## 安装
```bash
pip install evapro
```
安装成功后会在conda环境的bin下生成evapro主程序，可在命令行直接使用该程序，例如 /seqyuan/Miniconda3/envs/annoeva/bin/evapro

## 命令列表

### 初始化数据库

这个命令仅需要程序`管理员`执行一次！！

```bash
evapro init -d /path/to/dbdir
```

**参数说明**:
- `-d/--syncdbdir`: 指定数据库存储目录路径

**功能**:
1. 创建 syncproject.db 数据库
2. 创建所需数据表  
3. 设置数据库文件和目录权限为 777

### 查看修改配置文件路径
初始化完成后，需要手动修改evapro的配置文件，以使其能够正确访问:
- lims数据库
- annoeva程序
- annoeva配置文件

```bash
evapro conf
```

**功能**:
1. 显示当前使用的配置文件路径
2. 支持手动编辑配置文件

配置文件内容如下：
```
syncproject: /path/syncproject.db
# 数据库地址，通过evapro init命令创建的
cronnode: bj-sci-login
# 把项目从lims数据库同步到syncproject.db计划任务的执行节点，这是为了防止多节点执行造成的冲突
syn_lims_time: 2025-05-21 13:56:35
# 上次从lims同步项目的时间，下次会同步这个时间之后创建的项目
annoevaconf: /seqyuan/Miniconda3/envs/annoeva/lib/python3.11/site-packages/annoeva/config/evaconf.yaml
# annoeva的配置文件，这个文件记录的产品类型的项目才会被evapro自动加入到annoeva流水线监控
annoeva:  /seqyuan/miniconda3/envs/annoeva/bin/annoeva
# 流水线程序annoeva的程序路径

# 下面两项是lims数据库的配置，根据实际需要进行修改
cloud_message_info_db:
  host: mysql.rds.aliyuncs.com
  port: 3307
  user: cloud_message
  passwd: 
  db: cloud_message_info
  charset: utf8

lims3_db:
  host: mysql.rds.aliyuncs.com
  port: 3307
  user: 
  passwd:
  db: lims3
  charset: utf8

# 有一些用户的服务器账号和lims数据库记录的生信分析人域控账号不一致，导致不能识别到自己的项目，这项配置记录了服务器账号和域控的对应关系
# 管理员可更新此配置
ADuser:
  yuanzan: zanyuan
  renxue: xueren
  limeng: mengli
```

### 同步 LIMS 数据
`这个命令是为程序管理员准备`

```bash
/path/evapro lims2evapro
```

**功能**:
1. 从 LIMS 系统同步分析项目数据到本地数据库
2. 建议每4小时执行一次(需配置计划任务)

**配置计划任务**:
这个命令需要程序`管理员`加入到crontab计划任务即可实现定时自动从lims数据库导入项目到syncproject.db 数据库。

**操作步骤**:
1. 执行 `crontab -e` 打开crontab任务列表
2. 添加以下内容到新的一行(注意修改为实际的程序路径):
```
0 3 * * * /seqyuan/miniconda3/envs/annoeva/bin/evapro cron
``` 
3. 保存退出(`:wq`)

### 添加项目到监控系统
`这个命令需要项目负责人执行`

```bash
/path/evapro cron
```

**功能**:
1. 检查数据库中的项目
2. 将新项目添加到 annoeva 监控系统，只会添加运行账户的项目到运行账户的annoeva监控

**自动计划任务**:
- 首次运行`evapro`程序后，会自动将`evapro cron`命令添加到运行账户的crontab计划任务列表
- 默认执行频率: 每2小时执行一次

## 注意事项

**重要提示**:
1. 初始化时需要确保对指定目录有写入权限
2. 同步 LIMS 数据需要正确配置数据库连接信息
3. 自动设置 777 权限需要目录的属主执行evapro程序
fragmentshot 0.1.5
Prompt generation for Fragment-Shot and Pivoted Fragment-Shot translation using LLMs
License: MIT

# 🧩 FragmentShot Retriever

A Python package for retrieving exemplary translations for text based on fragments from parallel corpora.  

## Features

- Fragment extraction from source and target texts
- Configurable maximum fragment size
- Option to enable or disable fragment overlaps
- Easy integration for retrieval workflows

## Installation

You can install this package locally:

```bash
pip install fragmentshot
```

Or clone the repo and install in editable mode:

```bash
git clone https://github.com/schtailmuel/fragmentshot.git
cd fragmentshot
pip install -e .
```

## Usage 

```python 
from fragmentshot.retriever import FragmentShotsRetriever

src_texts = [
    "this is a sample source sentence.",
    "another example source sentence."
]

tgt_texts = [
    "dies ist ein Beispiel im Zieltext.",
    "noch ein Beispiel."
]

retriever = FragmentShotsRetriever(src_texts, tgt_texts, max_fragment_size=5, overlaps=False)

result = retriever.get_fragment_shots("The source of this is unknown.")
print(result)
```

**Result**

```json
{
  "shots": [
    {
      "index": 1,
      "fragment": "source",
      "examples": [
        {
          "src_text": "this is a sample source sentence.",
          "tgt_text": "dies ist ein Beispiel im Zieltext."
        },
        {
          "src_text": "another example source sentence.",
          "tgt_text": "noch ein Beispiel."
        }
      ]
    },
    {
      "index": 3,
      "fragment": "this is",
      "examples": [
        {
          "src_text": "this is a sample source sentence.",
          "tgt_text": "dies ist ein Beispiel im Zieltext."
        }
      ]
    }
  ],
  "num_words": 6,
  "unknown": [
    "The",
    "of",
    "unknown"
  ]
}
```

## Testing 

Run unit tests with:

```bash
python -m unittest discover tests
```

## License 

This project is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

Created by Samuel Frontull

## Citation
If you use this code in your research, please cite our paper (preprint):

```bibtex
@misc{frontull:stroehle:2025,
      title={Compensating for Data with Reasoning: Low-Resource Machine Translation with LLMs}, 
      author={Samuel Frontull and Thomas Ströhle},
      year={2025},
      eprint={2505.22293},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2505.22293}, 
}
```