wyre-ai/msp-claude-plugins/api-patterns

Claude Code and agent skill by wyre-ai/msp-claude-plugins

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

How the KPN tool surface behaves through Conduit: the X-KPN-* credential headers and the two OAuth token realms (API Store vs Mobile Services Management), why a valid key can still fail with 401/403 (product entitlement), quota headers and 429 handling, the write-confirmation flow, and why failed MSM writes are never retried automatically.

Install

npx vskill@latest install wyre-ai/msp-claude-plugins/api-patterns

SKILL.md

KPN API Patterns

Overview

KPN exposes its APIs through an Apigee gateway at api-prd.kpn.com. The kpn-mcp sidecar mints and caches OAuth2 client-credentials tokens itself; Conduit only forwards the stored keys as headers. Start any troubleshooting with kpn_test_connection.

Credentials and token realms

Conduit fieldHeaderUsed for
Client ID / Secret (required)X-KPN-Client-Id, X-KPN-Client-SecretDisturbance Check, Speed Check, SIM Swap; also MSM when no MSM pair is set
MSM Client ID / Secret (optional, both or neither)X-KPN-MSM-Client-Id, X-KPN-MSM-Client-SecretMobile Services Management (kpn_mobile_*)

The two realms mint tokens from different endpoints. MSM access is tied to a KPN business-mobile customer and may need an app that KPN set up for that customer, which is why it has its own optional pair.

Key concepts

  • A valid key is not an entitled key. KPN mints a token for any valid

project, even if the product was never added to it. The call then fails with 401 or 403. Tell the user to add the product to their project on developer.kpn.com rather than to re-enter credentials.

  • Quotas are per project and unpublished. Responses carry quota-*

headers; kpn_test_connection reports the last seen values. On 429 the error includes when the quota resets.

  • Test and production share one host. The account tier (demo/prod)

is a property of the project, reported by kpn_test_connection.

Writes

The five MSM write tools and kpn_mobile_contracts_get_puk ask the user to confirm before running. Clients that cannot show a prompt must pass confirm_destructive_action: true, and should only do so after the user has agreed in the conversation.

MSM writes create orders. Success means KPN accepted the order, not that the SIM is already blocked or replaced; the order may sit in UNAUTHORIZED until someone approves it (kpn_mobile_orders_authorize).

A failed write is never retried automatically, because a duplicate block or authorize is a real side effect. Before retrying after an error, check kpn_mobile_orders_list for an order that already went through.

Common errors

SymptomLikely causeAction
kpn_test_connection fails on the main realmWrong client ID/secretRe-check the project keys on developer.kpn.com
Token mints, tool returns 401/403Product not added to the projectAdd the product to the project
MSM token fails, network tools workMSM needs a customer-bound appAsk KPN for MSM access; set the optional MSM pair
404 on SIM SwapNot a KPN mobile numberSIM Swap only covers KPN NL numbers
429Project quota reachedWait for the reset time in the error

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/wyre-ai/msp-claude-plugins/api-patterns/badge)](https://verified-skill.com/skills/wyre-ai/msp-claude-plugins/api-patterns)

Something wrong with this skill or its page? Tell us.