Metadata-Version: 2.4
Name: mcp_server-shalini12345
Version: 0.0.1
Summary: MCP Server
Project-URL: Homepage, https://mcp.ag2.ai/
Project-URL: Documentation, https://mcp.ag2.ai/
Project-URL: Tracker, https://mcp.ag2.ai/
Project-URL: Source, https://github.com/ag2-mcp-servers
Author-email: ag2ai <support@ag2.ai>
Keywords: AI,LLM,ag2,autonomous agents,mcp,multi-agent
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: ag2[mcp,mcp-proxy-gen,openai]>=0.9.4
Requires-Dist: fastapi
Requires-Dist: pydantic[email]
Provides-Extra: dev
Requires-Dist: detect-secrets==1.5.0; extra == 'dev'
Requires-Dist: mcp-server[lint,submodules,testing]; extra == 'dev'
Requires-Dist: pre-commit==4.2.0; extra == 'dev'
Provides-Extra: lint
Requires-Dist: bandit==1.8.3; extra == 'lint'
Requires-Dist: codespell==2.4.1; extra == 'lint'
Requires-Dist: mypy==1.15.0; extra == 'lint'
Requires-Dist: pytest-mypy-plugins==3.2.0; extra == 'lint'
Requires-Dist: ruff==0.11.6; extra == 'lint'
Requires-Dist: semgrep>=1.79.0; extra == 'lint'
Requires-Dist: types-docutils; extra == 'lint'
Requires-Dist: types-pygments; extra == 'lint'
Requires-Dist: types-pyyaml; extra == 'lint'
Requires-Dist: types-setuptools; extra == 'lint'
Requires-Dist: types-ujson; extra == 'lint'
Provides-Extra: server
Requires-Dist: gunicorn>=23.0.0; (platform_system != 'Windows') and extra == 'server'
Requires-Dist: uvicorn>=0.31.0; extra == 'server'
Requires-Dist: waitress>=3.0.0; (platform_system == 'Windows') and extra == 'server'
Provides-Extra: submodules
Requires-Dist: mcp-server[server]; extra == 'submodules'
Provides-Extra: test-core
Requires-Dist: coverage[toml]==7.8.0; extra == 'test-core'
Requires-Dist: httpx; extra == 'test-core'
Requires-Dist: pytest-asyncio==0.26.0; extra == 'test-core'
Requires-Dist: pytest-rerunfailures==15.0; extra == 'test-core'
Requires-Dist: pytest==8.3.5; extra == 'test-core'
Provides-Extra: testing
Requires-Dist: mcp-server[server]; extra == 'testing'
Requires-Dist: mcp-server[submodules]; extra == 'testing'
Requires-Dist: mcp-server[test-core]; extra == 'testing'
Description-Content-Type: text/markdown

# MCP Server

This project is an MCP (Model Context Protocol) Server for the given OpenAPI URL - https://api.apis.guru/v2/specs/openpolicy.local/0.28.0/openapi.json, auto-generated using AG2's [MCP builder](https://mcp.ag2.ai).

## Prerequisites

*   Python 3.9+
*   pip and uv

## Installation

1.  Clone the repository:
    ```sh
    git clone <repository-url>
    cd mcp-server
    ```
2.  Install dependencies:
    The [.devcontainer/setup.sh](.devcontainer/setup.sh) script handles installing dependencies using `pip install -e ".[dev]"`. If you are not using the dev container, you can run this command manually.
    ```sh
    pip install -e ".[dev]"
    ```
    Alternatively, you can use `uv`:
    ```sh
    uv pip install --editable ".[dev]"
    ```

## Development

This project uses `ruff` for linting and formatting, `mypy` for static type checking, and `pytest` for testing.

### Linting and Formatting

To check for linting issues:
```sh
ruff check
```

To format the code:
```sh
ruff format
```
These commands are also available via the [scripts/lint.sh](scripts/lint.sh) script.

### Static Analysis

To run static analysis (mypy, bandit, semgrep):
```sh
./scripts/static-analysis.sh
```
This script is also configured as a pre-commit hook in [.pre-commit-config.yaml](.pre-commit-config.yaml).

### Running Tests

To run tests with coverage:
```sh
./scripts/test.sh
```
This will run pytest and generate a coverage report. For a combined report and cleanup, you can use:
```sh
./scripts/test-cov.sh
```

### Pre-commit Hooks

This project uses pre-commit hooks defined in [.pre-commit-config.yaml](.pre-commit-config.yaml). To install the hooks:
```sh
pre-commit install
```
The hooks will run automatically before each commit.

## Running the Server

The MCP server can be started using the [mcp_server/main.py](mcp_server/main.py) script. It supports different transport modes (e.g., `stdio`, `sse`, `streamable-http`).

To start the server (e.g., in stdio mode):
```sh
python mcp_server/main.py stdio
```

The server can be configured using environment variables:
*   `CONFIG_PATH`: Path to a JSON configuration file (e.g., [mcp_server/mcp_config.json](mcp_server/mcp_config.json)).
*   `CONFIG`: A JSON string containing the configuration.
*   `SECURITY`: Environment variables for security parameters (e.g., API keys).

Refer to the `if __name__ == "__main__":` block in [mcp_server/main.py](mcp_server/main.py) for details on how these are loaded.

The [tests/test_mcp_server.py](tests/test_mcp_server.py) file demonstrates how to start and interact with the server programmatically for testing.

## Building and Publishing

This project uses Hatch for building and publishing.
To build the project:
```sh
hatch build
```
To publish the project:
```sh
hatch publish
```
These commands are also available via the [scripts/publish.sh](scripts/publish.sh) script.
