agentleFS
PostLakePostLake/postlake-mcp/skills/postlake-inbox/SKILL.md

postlake-inbox

Skill2 starsChanged 2 months agoMITView on GitHub

Read and handle PostLake direct-message conversations across Facebook, Instagram, X, and Bluesky. Use when checking DMs, reading a thread, marking it read, drafting a reply, or sending an approved reply.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 1 is distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use PostLake's normalized inbox instead of calling four network APIs.

    line 8
  2. Very specific:

    Call list_social_accounts to identify the connection.

    line 12
  3. Very specific:

    Call get_platform_capabilities if you do not know whether that connection supports messaging.

    line 13
  4. Very specific:

    Call list_conversations, optionally filtered by account.

    line 14
  5. Very specific:

    Check problems before claiming there are no messages.

    line 15
  6. Very specific:

    Call read_conversation with both the conversation id and account id.

    line 16
  7. Very specific:

    Call send_message, then mark_conversation_read after the thread is handled.

    line 18
  8. Very specific:

    All REST requests use Authorization: Bearer $POSTLAKE_API_KEY.

    line 33
  9. Very specific:

    Never send humanAgent: true from an autonomous workflow.

    line 55

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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

PostLake: unified inbox

Use PostLake's normalized inbox instead of calling four network APIs.

Start safely

  1. Call list_social_accounts to identify the connection.
  2. Call get_platform_capabilities if you do not know whether that connection supports messaging.
  3. Call list_conversations, optionally filtered by account.
  4. Check problems before claiming there are no messages.
  5. Call read_conversation with both the conversation id and account id.
  6. Draft a concise reply. Do not send until the user has asked you to send it.
  7. Call send_message, then mark_conversation_read after the thread is handled.

Conversation ids are scoped to one connected account. Never guess the account or reuse a conversation id with another connection.

REST equivalents

ActionREST endpoint
List conversationsGET /v1/conversations
Find or open a threadPOST /v1/conversations with account and handle
Read messagesGET /v1/conversations/{id}/messages?account=acc_...
Mark readPOST /v1/conversations/{id}/read
Send a messagePOST /v1/conversations/{id}/messages

All REST requests use Authorization: Bearer $POSTLAKE_API_KEY. Reading, marking, and sending require the connected account id because a conversation id has meaning only within that connection.

What the response means

  • fromMe identifies which side sent a message. Do not infer this from handles.
  • content can describe an attachment, shared media, or an unsupported provider payload. Do not claim that an empty text means the message itself was empty.
  • The optional shape is { "kind": "attachment" | "shared_media" | "unsupported", "label": "...", "url": "..." | null }.
  • A problems entry means PostLake could not read a network. Report it. An empty items array without a problem means the network answered with no threads.
  • Cursors are opaque. Pass them back exactly as returned.

Network rules

  • Facebook and Instagram can produce message.received webhooks.
  • X and Bluesky require polling with list_conversations.
  • Sending a direct message on X costs 6 credits. Messaging on the other currently supported inbox networks does not spend credits.
  • Meta normal replies must be within 24 hours of the person's last message.
  • Never send humanAgent: true from an autonomous workflow. It asserts that a person wrote the reply, and Meta can penalize the connected account when that assertion is false. MCP deliberately does not expose this override.
  • Bluesky app passwords need direct-message access enabled when created.
  • Facebook and Instagram messaging may be unavailable until Meta grants the required permission to the connected business.

Supported boundary

PostLake currently exposes inbox messaging for Facebook, Instagram, X, and Bluesky. LinkedIn, TikTok, Threads, YouTube, and Pinterest do not provide a usable creator DM API for this product.

Docs: https://docs.postlake.dev/messages MCP: https://api.postlake.dev/mcp

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.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.