# Check MCP Server

A Model Context Protocol server that provides CVE checking capabilities via the Opsify API. This server enables LLMs to search for and retrieve CVE (Common Vulnerabilities and Exposures) information using a flexible set of filters.

> [!CAUTION]
> This server can access external APIs and may represent a security risk if misconfigured. Ensure your API key and usage comply with your organization's security policies.

### Available Tools

- `search_cve` - Search CVEs with various filters via the Opsify API.
    - `cve_id` (string, optional): CVE ID to search for
    - `title` (string, optional): Title to search in CVE description
    - `state` (string, optional): State to filter by
    - `priority` (string, optional): Priority level to filter by
    - `severity` (string, optional): Severity level to filter by
    - `score` (float, optional): CVSS score to filter by
    - `product_name` (string, optional): Product name to filter affected products
    - `product_version` (string, optional): Product version to filter affected products
    - `vendor` (string, optional): Vendor name to filter affected products
    - `from_date` (string, optional): Start date for filtering (YYYY-MM-DD or ISO 8601)
    - `to_date` (string, optional): End date for filtering (YYYY-MM-DD or ISO 8601)
    - `skip` (int, optional): Number of records to skip (pagination)
    - `limit` (int, optional): Maximum number of records to return (pagination)

### Example Usage

```python
python -m check_mcp
```

Or as a script/entry point:

```shell
check-mcp
```

### Example Tool Call

```json
{
  "tool": "search_cve",
  "arguments": {
    "product_name": "nginx",
    "severity": "high",
    "from_date": "2023-01-01",
    "limit": 5
  }
}
```

## Installation

### Using uv (recommended)

When using [`uv`](https://docs.astral.sh/uv/) no specific installation is needed. We will
use [`uvx`](https://docs.astral.sh/uv/guides/tools/) to directly run *check-mcp*.

### Using PIP

Alternatively you can install `check-mcp` via pip:

```
pip install check-mcp
```

After installation, you can run it as a script using:

```
python -m check_mcp
```

## Configuration

### Configure for Claude.app

Add to your Claude settings:

<details>
<summary>Using uvx</summary>

```json
"mcpServers": {
  "check": {
    "command": "uvx",
    "args": ["check-mcp"]
  }
}
```
</details>

<details>
<summary>Using docker</summary>

```json
"mcpServers": {
  "check": {
    "command": "docker",
    "args": ["run", "-i", "--rm", "mcp/check"]
  }
}
```
</details>

<details>
<summary>Using pip installation</summary>

```json
"mcpServers": {
  "check": {
    "command": "python",
    "args": ["-m", "check_mcp"]
  }
}
```
</details>

### Configure for VS Code

For quick installation, use one of the one-click install buttons below...

[![Install with UV in VS Code](https://img.shields.io/badge/VS_Code-UV-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=check&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22check-mcp%22%5D%7D) [![Install with UV in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-UV-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=check&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22check-mcp%22%5D%7D&quality=insiders)

[![Install with Docker in VS Code](https://img.shields.io/badge/VS_Code-Docker-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=check&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Fcheck%22%5D%7D) [![Install with Docker in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Docker-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=check&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22mcp%2Fcheck%22%5D%7D&quality=insiders)

For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing `Ctrl + Shift + P` and typing `Preferences: Open User Settings (JSON)`.

Optionally, you can add it to a file called `.vscode/mcp.json` in your workspace. This will allow you to share the configuration with others.

> Note that the `mcp` key is needed when using the `mcp.json` file.

<details>
<summary>Using uvx</summary>

```json
{
  "mcp": {
    "servers": {
      "check": {
        "command": "uvx",
        "args": ["check-mcp"]
      }
    }
  }
}
```
</details>

<details>
<summary>Using Docker</summary>

```json
{
  "mcp": {
    "servers": {
      "check": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "mcp/check"]
      }
    }
  }
}
```
</details>

## Debugging

You can use the MCP inspector to debug the server. For uvx installations:

```
npx @modelcontextprotocol/inspector uvx check-mcp
```

Or if you've installed the package in a specific directory or are developing on it:

```
cd path/to/servers/src/check
npx @modelcontextprotocol/inspector uv run check-mcp
```

## Contributing

We encourage contributions to help expand and improve check-mcp. Whether you want to add new tools, enhance existing functionality, or improve documentation, your input is valuable.

For examples of other MCP servers and implementation patterns, see:
https://github.com/modelcontextprotocol/servers

Pull requests are welcome! Feel free to contribute new ideas, bug fixes, or enhancements to make check-mcp even more powerful and useful.

## License

check-mcp is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
