agentleFS
Happy-Technologies-LLCHappy-Technologies-LLC/happy-platform-skills/skills/development/mcp-server-installation/SKILL.md

mcp-server-installation

Skill41 starsChanged 6 days agoApache-2.0View on GitHub

Install Happy Platform MCP v6.1 and configure secure, keychain-backed ServiceNow instance access

  • Installs packages

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 7 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use npm for a normal installation:

    line 40
  2. Very specific:

    When upgrading from 5.x, each public authorization_code instance prompts for browser sign-in once, because refresh tokens are now bound to …

    line 51
  3. Very specific:

    Run happy-platform-mcp instance add locally.

    line 55
  4. Distinctive:

    Use the local CLI lifecycle:

    line 64
  5. Distinctive:

    When neither a registry/config nor legacy environment credentials exist, stdio automatically falls back to docs-only mode.

    line 101
  6. Very specific:

    Use HAPPY_MCP_DOCS_ONLY=true.

    line 111
  7. Very specific:

    Use local instance add for Basic, client_credentials, and OAuth password.

    line 119
  8. Very specific:

    Never pass a credential or token to SN-Register-Instance.

    line 122
  9. Very specific:

    After restarting the MCP host, list instances with parameterless SN-Set-Instance, inspect the session with SN-Get-Current-Instance, and run …

    line 139
  10. Distinctive:

    Start read-only and in a non-production instance.

    line 155
  11. Distinctive:

    Keep instance names clear and verify the current target before writes.

    line 156
  12. Distinctive:

    Keep credentials inside masked local prompts and the OS keychain.

    line 157
  13. Distinctive:

    Use explicit routing for destructive, production, concurrent, or critical operations.

    line 158
  14. Very specific:

    Run happy-platform-mcp instance test <name> before enabling write workflows.

    line 159

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Happy Platform MCP v6.1 Installation

Overview

Install Happy Platform MCP v6.1, register one or more ServiceNow instances, and connect an MCP host without exposing authentication material to the model, MCP messages, logs, shell history, or client JSON. Keep the MCP-first policy: use live SN-* tools for ServiceNow work after local setup; use raw REST only when no MCP tool can perform the operation and the caller already has a locally managed credential helper.

Prerequisites

  • Node.js >= 20
  • Happy Platform MCP 6.1.0 or a compatible later 6.x release
  • A local interactive terminal for masked prompts
  • An OS keychain available to the current user
  • An MCP-capable client and appropriate ServiceNow access

Procedure

Step 1: Install the Server

Use npm for a normal installation:

npm install -g happy-platform-mcp@6.1.0
happy-platform-mcp --version

An MCP host can instead launch the package with npx -y happy-platform-mcp@6.1.0. Do not add authentication material to its arguments or environment block.

The happy-platform-mcp command serves the stdio transport, which needs no HTTP token. Since 6.0, the HTTP/SSE transport (a source checkout's npm start or the Docker image) refuses to start unless HAPPY_MCP_API_TOKEN in the server environment holds 64 hex characters generated with openssl rand -hex 32 (or 43 base64url characters). Every HTTP client, probe, and health check must send that value as a bearer token in the Authorization header, and HAPPY_MCP_ALLOWED_HOSTS must list the host authority clients use behind a container port or proxy. Keep the token in a secret store, never in client JSON, prompts, or documentation. HTTP serves one trusted operator; shared multi-user hosting is unsupported.

When upgrading from 5.x, each public authorization_code instance prompts for browser sign-in once, because refresh tokens are now bound to the OAuth identity. If an instance uses an external identity provider, list its origin in SERVICENOW_OAUTH_TRUSTED_ORIGINS for both the server and the happy-platform-mcp instance CLI.

Step 2: Choose an Authentication Mode

Run happy-platform-mcp instance add locally. It gathers required values through interactive masked prompts and puts credential material in the OS keychain. The model must never ask the user to paste, echo, log, document, or send that material in an MCP call.

ModeChoose whenLocal setup behavior
BasicA named integration user is requiredPrompts locally for the user identity and its credential
OAuth client_credentialsA non-interactive service integration is requiredPrompts locally for client metadata and the client credential
OAuth passwordA legacy resource-owner flow is explicitly requiredPrompts locally for user and client credentials; prefer a stronger flow when possible
Public authorization_code with PKCEPer-user browser sign-in is availableDirect zero-static-secret path; the browser flow stores refresh state in the OS keychain

Use the local CLI lifecycle:

happy-platform-mcp instance add
happy-platform-mcp instance list
happy-platform-mcp instance test dev
happy-platform-mcp instance update dev
happy-platform-mcp instance remove dev
happy-platform-mcp instance migrate

instance update changes metadata only. Authentication changes require remove then re-add. Use happy-platform-mcp instance credential set dev only to rotate an already-registered instance or complete an existing metadata-only registration; it cannot bootstrap a new instance name.

Step 3: Understand Registry Storage

The default version 1 user registry is ~/.config/happy-platform-mcp/instances.json. It contains non-secret metadata and canonical credentialRef values only. Credentials remain in the OS keychain. Do not manually add plaintext values to the registry.

HAPPY_CONFIG_PATH overrides the registry location and supports absolute paths, relative paths, and ~. Set it before running the CLI and provide the same value to the MCP host. This is safe host configuration because it identifies metadata, not a credential.

{
  "mcpServers": {
    "happy-platform-mcp": {
      "command": "npx",
      "args": ["-y", "happy-platform-mcp@6.1.0"],
      "env": {
        "HAPPY_CONFIG_PATH": "~/.config/happy-platform-mcp/instances.json"
      }
    }
  }
}

The package-local config/servicenow-instances.json is a read-only legacy migration input, never the writable user registry. With the automatic package-legacy-to-user-registry path, happy-platform-mcp instance migrate moves credentials into the OS keychain and leaves the legacy source untouched. If an override points at the same plaintext source and destination, migration refuses before writing; select a distinct target or recreate each instance with instance add. Never teach manual plaintext registry editing.

Step 4: Start Normally or in Docs-Only Mode

When neither a registry/config nor legacy environment credentials exist, stdio automatically falls back to docs-only mode. To force that mode explicitly, configure:

{
  "env": {
    "HAPPY_MCP_DOCS_ONLY": "true"
  }
}

Use HAPPY_MCP_DOCS_ONLY=true; the --docs-only argument does not force docs-only mode in 6.1.0 and does not override an existing registry. Docs-only mode exposes the documentation and safe registration tools without creating a live ServiceNow client.

Step 5: Use Safe MCP Registration

SN-Register-Instance is metadata-only and rejects secret fields. It normally persists metadata and performs a live reload. A server that started in docs-only mode must restart before live ServiceNow tools become available.

There is a 6.1.0 bootstrap constraint: credential-backed registration checks for credential references before it writes new metadata, while instance credential set requires an already-registered name. Therefore:

  • Use local instance add for Basic, client_credentials, and OAuth password.
  • Direct SN-Register-Instance is reliable for public authorization_code, which has no static client credential.
  • Credential-backed direct registration is also possible with externally preprovisioned deterministic keychain refs.
  • Never pass a credential or token to SN-Register-Instance.

Example public registration:

Tool: SN-Register-Instance
Parameters:
  name: public-dev
  url: https://example.service-now.com
  authType: oauth
  grantType: authorization_code
  clientId: registered-public-client-id
  makeDefault: true

Step 6: Verify and Route

After restarting the MCP host, list instances with parameterless SN-Set-Instance, inspect the session with SN-Get-Current-Instance, and run a low-risk read:

Tool: SN-Query-Table
Parameters:
  instance: dev
  table_name: incident
  query: active=true
  fields: number,short_description,state
  limit: 1

SN-Set-Instance changes the current session's implicit target for sequential work. For concurrent work, critical operations, or any operation that could race a session switch, pass the explicit per-call instance value.

Best Practices

  • Start read-only and in a non-production instance.
  • Keep instance names clear and verify the current target before writes.
  • Keep credentials inside masked local prompts and the OS keychain.
  • Use explicit routing for destructive, production, concurrent, or critical operations.
  • Run happy-platform-mcp instance test <name> before enabling write workflows.
  • Preserve the MCP-first policy and use SN-Get-Table-Schema before unfamiliar table operations.

Troubleshooting

IssueResolution
CLI reports an old Node runtimeInstall Node 20 or later and repeat the command
An instance name is missingRun happy-platform-mcp instance list, then use instance add locally
Authentication mode must changeRun instance remove <name>, then instance add and choose the new mode
Metadata exists but authentication failsRun instance credential set <name> locally, then instance test <name>
Only docs tools appearRemove forced docs-only mode if present and restart after a usable registration exists
Migration refuses the pathUse the automatic legacy-to-default-user path or select a distinct metadata-only target
HTTP/SSE server will not start or rejects requestsSet a generated HAPPY_MCP_API_TOKEN on the server, send it as a bearer token from every client and health check, and list the client host authority in HAPPY_MCP_ALLOWED_HOSTS
Authorization-code instance asks to sign in again after upgradingExpected once after moving from 5.x; complete the browser sign-in

Related Skills

  • admin/instance-management - Runtime routing and environment safety
  • development/servicenow-docs-mcp - Documentation search and docs-only behavior
  • development/mcp-server - Build a custom MCP-compatible integration

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.