Metadata-Version: 2.4
Name: moss-mcp
Version: 0.1.0
Summary: MOSS integration for Model Context Protocol (MCP) - Protocol-level governance for AI agent tools
Project-URL: Homepage, https://mosscomputing.com
Project-URL: Documentation, https://docs.mosscomputing.com/sdks/mcp
Project-URL: Repository, https://github.com/mosscomputing/moss-mcp
Project-URL: Issues, https://github.com/mosscomputing/moss-mcp/issues
Author-email: MOSS Computing <support@mosscomputing.com>
License-Expression: MIT
License-File: LICENSE
Keywords: agent-security,ai-governance,compliance,cryptographic-signing,mcp,ml-dsa-44,model-context-protocol,moss
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
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: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: httpx>=0.24.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# moss-mcp

Protocol-level governance for Model Context Protocol (MCP) using ML-DSA-44 post-quantum cryptography.

## Overview

MOSS MCP integration signs ALL MCP tool calls with NIST FIPS 204 post-quantum cryptography. By intercepting at the MCP transport layer, MOSS governs every tool invocation regardless of the agent framework.

| Approach | Coverage | Bypassable? |
|----------|----------|-------------|
| Framework SDKs | Per-framework | Yes |
| **MCP Integration** | **All tools** | **No** |

## Installation

```bash
pip install moss-mcp
```

## Quick Start

```python
from mcp import Client
from moss_mcp import wrap_mcp_client

# Wrap MCP client - all tool calls are now signed
moss_client = wrap_mcp_client(client, agent_id="my-agent")

# Use normally - signing happens automatically
result = await moss_client.call_tool("send_email", {
    "to": "user@example.com",
    "body": "Hello"
})
```

## Integration Options

### Option 1: Client Wrapper

```python
from moss_mcp import wrap_mcp_client
moss_client = wrap_mcp_client(client, agent_id="my-agent")
```

### Option 2: MCP Server

```python
from moss_mcp import MOSSMCPServer

server = MOSSMCPServer(agent_id="email-service")

@server.tool()
async def send_email(to: str, body: str) -> str:
    return f"Sent to {to}"
```

### Option 3: Middleware

```python
from moss_mcp import MOSSMCPMiddleware

middleware = MOSSMCPMiddleware(
    agent_id="my-service",
    block_on_policy_violation=True,
)
```

## Configuration

| Variable | Description | Default |
|----------|-------------|---------|
| `MOSS_API_KEY` | Enterprise API key | None (local mode) |
| `MOSS_API_URL` | API endpoint | `https://api.mosscomputing.com` |

## Policy Enforcement

```python
from moss_mcp.server import PolicyViolationError

try:
    await moss_client.call_tool("execute_trade", {"amount": 1000000})
except PolicyViolationError as e:
    print(f"Blocked: {e.reason}")
```

## Causal Chaining

```python
result1 = await sign_tool_request_async("analyze_data", {...}, agent_id="agent-1")

result2 = await sign_tool_request_async(
    "make_decision",
    {...},
    agent_id="agent-2",
    parent_sig=result1.signature_id
)
```

## Links

- [Documentation](https://docs.mosscomputing.com/sdks/mcp)
- [API Reference](https://api.mosscomputing.com/docs)
- [Dashboard](https://app.mosscomputing.com)
- [MCP Specification](https://modelcontextprotocol.io)

## License

MIT License - see [LICENSE](LICENSE) for details.
