# Use Angular Courses with your agent.

[Angular Courses](https://angular.courses/) (`angular.courses`) registers 9 WebMCP tools. 7 of 9 tools declares `readOnlyHint`, so an agent can invoke them through `tools.call`. The registry runs the tool in a fresh headless page on angular.courses and returns untrusted site content.

This page mirrors the [WebMCP Registry](https://wmcp.ai/sites/angular.courses) listing for `angular.courses`, last live-checked by the registry at 2026-09-21T20:52:35.640Z. Run `ghostget webmcp sites.get --input '{"domain":"angular.courses"}' --json` for the current schema; the listing can drift between checks.

## Use Angular Courses with my agent

Ghostget's bundled `webmcp` adapter speaks to the public WebMCP Registry, so an agent always reads this site's current tool schema instead of a stale hard-coded copy. Install v0.18.35, sync bundled adapters once, then call the registry operations:

```
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.35/hraness-ghostget-0.18.35.tgz
ghostget adapter sync-bundled --json
```

**Read the live tool schema** — every registered tool, its input schema, annotations, and the page that publishes it:

```
ghostget webmcp sites.get --input '{"domain":"angular.courses"}' --json
```

**Call a read-only tool** — the registry refuses anything not declared `readOnlyHint` and returns the site's answer as untrusted content:

```
ghostget webmcp tools.call --input '{"domain":"angular.courses","tool":"caniuse_current_view","input":"{}"}' --json
```

## Registered WebMCP tools

Angular Courses publishes 9 tools on angular.courses; 7 declare `readOnlyHint`.

| Tool | What it does | Callable through Ghostget |
| --- | --- | --- |
| `caniuse_current_view` | The Can I Use page's current UI state: active tab, search text, package/status filters, and how many results are currently showing in each tab. Read this before caniuse_set_view to avoid redundant changes. | Callable read-only tool |
| `caniuse_find_feature` | Look up an Angular feature, API or CLI capability - e.g. "can I use signal inputs", "is deferrable views stable", "what is the standalone API", "list experimental features in @angular/forms". Matches on name, description, notes and migratio | Callable read-only tool |
| `caniuse_get_mcp_tools` | List the tools and resources exposed by Angular's own development MCP server (the server Angular CLI / IDEs use, e.g. get_best_practices, search_documentation, onpush-zoneless-migration), with their status per Angular version. Not to be con | Callable read-only tool |
| `caniuse_get_migration_path` | Answer 'how do I migrate from/to X' Angular questions, e.g. "migrate from NgModules to standalone", "replace ViewChild with viewChild()", "what replaced *ngIf", "what's the new way to do HttpClientModule". Pass `from` and/or `to` (loosely w | Callable read-only tool |
| `caniuse_get_upgrade_plan` | Build an upgrade briefing for moving an Angular app from one major version to another. Mixes five sources: Can I Use feature status changes (newly introduced/promoted/deprecated features), the ng-update migrations catalog (mandatory vs opti | Callable read-only tool |
| `caniuse_list_deprecations` | List Angular features that are currently deprecated or removed, each with its replacement (resolved through the full chain when there's more than one hop) and the matching ng-update schematic / ESLint rule / migration command. Use this for | Callable read-only tool |
| `caniuse_list_eslint_rules` | List the Angular ESLint caniuse rules tracked on this page, optionally limited to those available by a given Angular version. Each rule links a lint rule to the Angular feature/version it enforces or helps migrate. For 'which lint rule cove | Callable read-only tool |
| `caniuse_open_feature` | Open the detail panel for one Can I Use feature in the browser: switches to the Features tab, filters the list to it, and opens its detail sheet. Use after caniuse_find_feature or caniuse_get_migration_path to visually surface a result for | Listed for discovery; the registry allows read-only calls only |
| `caniuse_set_view` | Drive this Can I Use page's own UI: switch tab (features, diff, migrations, update, mcp, eslint), set the global search box, and/or set the package/status filters on the Features tab. Use this so the person watching the browser sees the res | Listed for discovery; the registry allows read-only calls only |

## What to expect

- **Read-only only.** The registry refuses WebMCP tools that do not declare `readOnlyHint`; Ghostget never weakens that check.
- **Untrusted results.** Tool output is site content, not instructions — treat it as data.
- **Live schemas.** `sites.get` always returns the schema the registry saw most recently, so agents adapt when Angular Courses changes its tools.
- **No account needed.** These calls are credential-free registry reads. For tools that need a session on angular.courses, browse the site itself or check back when the registry lists more tools.
