Claude-code-plugins grammarly-install-auth

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/grammarly-pack/skills/grammarly-install-auth" ~/.claude/skills/jeremylongshore-claude-code-plugins-grammarly-install-auth && rm -rf "$T"
manifest: plugins/saas-packs/grammarly-pack/skills/grammarly-install-auth/SKILL.md
source content

Grammarly Install & Auth

Overview

Configure Grammarly API authentication using OAuth 2.0 Bearer tokens. Grammarly provides three main APIs: Writing Score API, AI Detection API, and Plagiarism Detection API. All use the same auth pattern via

api.grammarly.com
.

Prerequisites

  • Grammarly Enterprise account with API access
  • OAuth credentials from Grammarly admin portal
  • Required scopes:
    scores-api:read
    ,
    scores-api:write

Instructions

Step 1: Configure Environment

# .env (NEVER commit)
GRAMMARLY_CLIENT_ID=your_client_id
GRAMMARLY_CLIENT_SECRET=your_client_secret
GRAMMARLY_ACCESS_TOKEN=  # Populated after OAuth

Step 2: Obtain Access Token

// auth.ts
import 'dotenv/config';

async function getAccessToken(): Promise<string> {
  const response = await fetch('https://api.grammarly.com/ecosystem/api/v1/oauth/token', {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: new URLSearchParams({
      grant_type: 'client_credentials',
      client_id: process.env.GRAMMARLY_CLIENT_ID!,
      client_secret: process.env.GRAMMARLY_CLIENT_SECRET!,
    }),
  });
  const { access_token, expires_in } = await response.json();
  console.log(`Token obtained, expires in ${expires_in}s`);
  return access_token;
}

Step 3: Verify Connection

async function verify(token: string) {
  const response = await fetch('https://api.grammarly.com/ecosystem/api/v2/scores', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({ text: 'This is a test sentence for verification.' }),
  });
  if (response.ok) console.log('Grammarly API connection verified');
  else console.error('Verification failed:', response.status);
}

Error Handling

ErrorCauseSolution
401 Unauthorized
Invalid or expired tokenRe-authenticate
403 Forbidden
Missing API scopesCheck enterprise admin settings
invalid_client
Wrong credentialsVerify client ID and secret

Resources

Next Steps

After auth, proceed to

grammarly-hello-world
.