OpenClaw Skillv2.0.1

Mastodon Scout

Hiren Patelby Hiren Patel
Deploy on EasyClawdfrom $14.9/mo

Read-only Mastodon skill. Outputs human-readable timeline summaries or raw JSON.

How to use this skill

OpenClaw skills run inside an OpenClaw container. EasyClawd deploys and manages yours โ€” no server setup needed.

  1. Sign up on EasyClawd (2 minutes)
  2. Connect your Telegram bot
  3. Install Mastodon Scout from the skills panel
Get started โ€” from $14.9/mo
5stars
1,753downloads
2installs
0comments
6versions

Latest Changelog

- Updated the SKILL.md metadata section for improved structure and compatibility.
- No changes to commands, options, examples, error handling, or usage details.
- No functional changes to the skill's capabilities or invocation.
- Documentation now uses a new metadata format.

Tags

1.0.2: 1.0.2latest: 2.0.1

Skill Documentation

---
name: mastodon-scout
description: Read-only Mastodon skill. Outputs human-readable timeline summaries or raw JSON.
metadata: {"clawdhub":{"emoji":"๐Ÿฆฃ"},"clawdis":{"envVars":[{"name":"MASTODON_TOKEN","required":true},{"name":"MASTODON_INSTANCE","required":false,"default":"https://mastodon.social"}]}}
---

# Mastodon Scout

## Purpose

Read-only Mastodon skill. Fetches data from the Mastodon API via a bundled Python script (`scripts/mastodon_scout.py`). Returns human-readable summaries by default, or raw JSON with `--json`.

---

## Invocation Rules (MANDATORY)

```bash
python3 ./scripts/mastodon_scout.py <command> [options]
```

### Commands

| Command | What it fetches |
|---------|----------------|
| `home` | Authenticated user's home timeline |
| `user-tweets` | Authenticated user's own posts |
| `mentions` | Mentions of the authenticated user |
| `search <query>` | Posts matching the query |

### Options
```
--instance <url>   Mastodon instance base URL (default: $MASTODON_INSTANCE or https://mastodon.social)
--limit <int>      Number of items to return (default: $LIMIT or 20)
--json             Output raw JSON instead of human-readable text
```

### Environment Variables
```
MASTODON_TOKEN      Required. OAuth bearer token.
MASTODON_INSTANCE   Optional. Instance base URL (default: https://mastodon.social).
```

### Examples
```bash
python3 ./scripts/mastodon_scout.py home
python3 ./scripts/mastodon_scout.py mentions --limit 10
python3 ./scripts/mastodon_scout.py search "golang"
python3 ./scripts/mastodon_scout.py home --json
python3 ./scripts/mastodon_scout.py home --instance https://fosstodon.org
```

---

## Output Modes

### Text Mode (Default)
The script formats each post as:
```
[N] Display Name (@user@instance) ยท <timestamp>
<content>
โ†ฉ <replies>  ๐Ÿ” <reblogs>  โญ <favourites>
<url>
```
The agent MAY add a brief summary after the list.

### JSON Mode (`--json`)
Returns raw Mastodon API JSON. Return it verbatim โ€” no interpretation.

---

## Error Handling

The script prints a human-readable error to stderr and exits non-zero:

| Condition | Message |
|-----------|---------|
| Token missing | `Error: MASTODON_TOKEN is not set` |
| 401 | `Mastodon API error: 401 Unauthorized โ€” check MASTODON_TOKEN` |
| 403 | `Mastodon API error: 403 Forbidden` |
| 422 | `Mastodon API error: 422 Unprocessable Entity` |
| 429 | `Mastodon API error: 429 Rate Limited โ€” try again later` |

Do not retry on error. Guide the user to Authentication Setup if the token is missing or invalid.

---

## Examples That Trigger This Skill

- `mastodon-scout home`
- `show my mastodon timeline`
- `check mastodon mentions`
- `search mastodon for "golang"`
- `get my mastodon posts`

---

## Notes

- This skill is **read-only** (no posting, following, or other mutations)
- `scripts/mastodon_scout.py` uses stdlib only โ€” no pip install required
- In JSON mode: output verbatim, no interpretation

---

## Authentication Setup (Agent MAY Help)

**EXCEPTION TO STRICT MODE**: If the user needs help obtaining a token, the agent **may** provide guidance before executing the skill.

### How to Obtain a Token:

**Step 1: Access Development Settings**
- Log into your Mastodon instance (e.g., mastodon.social, fosstodon.org)
- Navigate to: **Settings โ†’ Development** (or Preferences โ†’ Development)
- Direct URL: `https://[instance-domain]/settings/applications`

**Step 2: Create Application**
- Click "New Application"
  - **Application name**: `mastodon-scout` (or any name)
  - **Redirect URI**: `urn:ietf:wg:oauth:2.0:oob`
  - **Scopes**: **CRITICAL โ€” only select `read`** (uncheck write, follow, push)

**Step 3: Get Access Token**
- Click Submit, then open the created application
- Copy the **"Your access token"** value

**Step 4: Set Environment Variable**
```bash
export MASTODON_TOKEN="paste_token_here"
```

**Step 5: Verify**
```bash
python3 ./scripts/mastodon_scout.py home --limit 5
```

### Common Mastodon Instances:
- `mastodon.social` โ€” General purpose (default)
- `fosstodon.org` โ€” FOSS/tech community
- `mas.to` โ€” Tech focused
- `hachyderm.io` โ€” Tech/infosec community

### Security Notes:
- Token is **read-only** (cannot post, follow, or delete)
- Keep token secret (don't commit to git)
- Can be revoked anytime in Development settings
- Each Mastodon instance requires its own token
Security scan, version history, and community comments: view on ClawHub