# sympy_diag

Create a diagonal matrix.

Agent View of the PolicyLayer registry record for `sympy_diag`. HTML page: https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-diag

## Facts

- Tool: `sympy_diag`
- Server: Pypi:mcp Sympy (`pypi:mcp-sympy`) — https://policylayer.com/tools/io-github-daedalus-mcp-sympy.md
- Install: `npx -y pypi:mcp-sympy`
- Homepage: https://github.com/daedalus/mcp-sympy
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sympy_diag",
    "arguments": {}
  }
}
```

## Why sympy_diag is rated Medium

The sympy_diag function creates mathematical objects (diagonal matrices) as output. This is a data creation operation with no side effects on external systems, no irreversible changes, and no code execution. It falls under Write rather than Read because it constructs new data rather than querying existing data.

From the tool's own definition: "Tool creates a diagonal matrix, which generates new data structures in memory without retrieving existing data or causing destructive side effects."

## Use case

AI agents use sympy_diag to create or update resources in Pypi:mcp Sympy, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Pypi:mcp Sympy environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Pypi:mcp Sympy:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sympy_diag": {
      "limits": [
        {
          "counter": "sympy_diag_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Pypi:mcp Sympy (170)

- `sympy_cancel` — Destructive — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-cancel.md
- `sympy_abs` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-abs.md
- `sympy_And` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-and.md
- `sympy_apart` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-apart.md
- `sympy_asin` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-asin.md
- `sympy_cbrt` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-cbrt.md
- `sympy_cosh` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-cosh.md
- `sympy_derivative` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-derivative.md
- `sympy_diff` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-diff.md
- `sympy_dsolve` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-dsolve.md
- `sympy_erf` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-erf.md
- `sympy_evalf` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-evalf.md
- `sympy_evaluate` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-evaluate.md
- `sympy_exp` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-exp.md
- `sympy_expand` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-expand.md
- `sympy_expand_complex` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-expand-complex.md
- `sympy_factor` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-factor.md
- `sympy_factorial` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-factorial.md
- `sympy_factorint` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-factorint.md
- `sympy_finiteset` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-finiteset.md
- `sympy_float` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-float.md
- `sympy_gamma` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-gamma.md
- `sympy_gcd` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-gcd.md
- `sympy_groebner` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-groebner.md
- `sympy_horner` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-horner.md
- `sympy_integrate` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-integrate.md
- `sympy_lcm` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-lcm.md
- `sympy_limit` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-limit.md
- `sympy_log` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-log.md
- `sympy_log_base` — Execute — https://policylayer.com/tools/io-github-daedalus-mcp-sympy/sympy-log-base.md
- …and 140 more: https://policylayer.com/tools/io-github-daedalus-mcp-sympy.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=io-github-daedalus-mcp-sympy · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-daedalus-mcp-sympy
