# decode_qr_code

Decode QR code from image file

Agent View of the PolicyLayer registry record for `decode_qr_code`. HTML page: https://policylayer.com/tools/jrmatherly-mcp-context-forge/decode-qr-code

## Facts

- Tool: `decode_qr_code`
- Server: ContextForge MCP Gateway (`jrmatherly/mcp-context-forge`) — https://policylayer.com/tools/jrmatherly-mcp-context-forge.md
- Homepage: https://github.com/jrmatherly/mcp-context-forge
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Allowed

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

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

## Why decode_qr_code is rated Low

This tool retrieves and parses data (QR code content) from an image file. It performs no data creation, modification, deletion, code execution, or financial operations. The operation is passive and non-destructive, with no external effects beyond returning decoded information. Severity is low because even if misused, decoding a QR code cannot harm systems or data—it merely extracts publicly-visible information.

From the tool's own definition: "Tool name 'decode_qr_code' and description 'Decode QR code from image file' indicate a read-only operation that extracts information from an image without modification or side effects."

## Use case

AI agents call decode_qr_code to retrieve information from ContextForge MCP Gateway without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches ContextForge MCP Gateway:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "decode_qr_code": {}
  }
}
```

## Other tools on ContextForge MCP Gateway (220)

- `clear_cache` — Destructive — https://policylayer.com/tools/jrmatherly-mcp-context-forge/clear-cache.md
- `delete_slide` — Destructive — https://policylayer.com/tools/jrmatherly-mcp-context-forge/delete-slide.md
- `agent.benchmark_performance` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/agent.benchmark-performance.md
- `bitbucket_trigger_pipeline` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/bitbucket-trigger-pipeline.md
- `build_schedule` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/build-schedule.md
- `calculate_stats` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/calculate-stats.md
- `compile_document` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/compile-document.md
- `critical_path_analysis` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/critical-path-analysis.md
- `execute_code` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/execute-code.md
- `generate_qr_code` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/generate-qr-code.md
- `judge.rank_responses` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/judge.rank-responses.md
- `performance.evaluate_throughput_scaling` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/performance.evaluate-throughput-scaling.md
- `query_data` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/query-data.md
- `render_graph` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/render-graph.md
- `robustness.assess_distribution_shift` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/robustness.assess-distribution-shift.md
- `robustness.measure_input_sensitivity` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/robustness.measure-input-sensitivity.md
- `robustness.test_adversarial_inputs` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/robustness.test-adversarial-inputs.md
- `statistical_test` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/statistical-test.md
- `transform_data` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/transform-data.md
- `workflow.run_evaluation` — Execute — https://policylayer.com/tools/jrmatherly-mcp-context-forge/workflow.run-evaluation.md
- `agent.analyze_reasoning` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/agent.analyze-reasoning.md
- `agent.evaluate_tool_use` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/agent.evaluate-tool-use.md
- `agent.measure_task_completion` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/agent.measure-task-completion.md
- `analyze_code` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-code.md
- `analyze_csv` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-csv.md
- `analyze_dataset` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-dataset.md
- `analyze_document` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-document.md
- `analyze_feed` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-feed.md
- `analyze_graph` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-graph.md
- `analyze_text` — Read — https://policylayer.com/tools/jrmatherly-mcp-context-forge/analyze-text.md
- …and 190 more: https://policylayer.com/tools/jrmatherly-mcp-context-forge.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=jrmatherly-mcp-context-forge · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/jrmatherly-mcp-context-forge
