# {{ project_name }}

{{ display_name }} MCP (Model Context Protocol) server, generated by [mcpify](https://github.com/guercheLE/mcpify).

Exposes exactly 3 tools — `search`, `get`, `call` — backed by an embedded semantic database (`mcp_store.db`), so an LLM never needs the full API surface in context.

## Install

```bash
dotnet restore
```

## Setup

```bash
dotnet run -- setup
```

Interactively collects the API URL and the credentials your chosen auth method needs, then lets you persist them as a `.env` file, an `appsettings.json` file, or a ready-to-run CLI invocation.

## Usage

### Terminal Client (default)

```bash
dotnet run -- search "create an issue"
dotnet run -- get <operationId>
dotnet run -- call <operationId> --some-arg value
```

### Harness Server

```bash
dotnet run -- start                              # stdio transport (default)
dotnet run -- http --host 127.0.0.1 --port 3000  # HTTP transport
```

## Testing

```bash
dotnet test
```

## Coverage

```bash
bash scripts/coverage.sh   # writes coveragereport/index.html (requires dotnet-reportgenerator-globaltool)
```

## Profiling

```bash
bash scripts/profile.sh   # writes profile/bottleneck-report.md (requires dotnet-trace: dotnet tool install --global dotnet-trace)
```

Profiles a real one-shot `search` invocation of the built server under a combined CPU + GC/allocation trace (via `Tools/Profiler`, a small `Microsoft.Diagnostics.NETCore.Client` orchestrator). Run `scripts/coverage.sh` first if you want the coverage section of the report populated too. `profile/bottleneck-report.md` combines the coverage summary with the hottest functions in one small text file — paste it into an LLM (or hand it to another tool) to find and fix bottlenecks. For the interactive view, load `profile/test_profile.speedscope.json` at [speedscope.app](https://www.speedscope.app) or open `profile/test_profile.nettrace` in Visual Studio/PerfView.

---

Generated by mcpify — do not hand-edit generated files; re-run mcpify against an updated OpenAPI spec instead.
