# Pixelfed MCP

> Pixelfed manages your decentralized photo-sharing feed—your alternative to centralized platforms. Use any AI agent to post text and media, like posts using `favourite_status`, track notifications via `get_notifications`, or browse public timelines without logging into a browser.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** photo-sharing, decentralized, activitypub, social-networking, media-upload, community-engagement

## Description

**Pixelfed (Instagram Alternative) MCP Server for Status & Media**

Forget relying on centralized platforms. This server gives your AI agent full control over your decentralized photo-sharing feed, letting you manage it all right where you are working. You don't have to open a browser just to post or check what your friends are up to.

### Posting and Editing Content

You can write new statuses using `create_status`, giving the AI agent text content, specific media IDs, and even setting who can see it. If you upload pictures first with `upload_media`, that tool returns a unique ID you must pass back into `create_status` so your post has the right visuals. You'll also need to know how to clean up: call `delete_status` when you want to remove an old status from your profile.

### Social Interaction and Engagement

Want to interact with content? Your agent can easily like a specific post using `favourite_status`. If you change your mind, just run `unfavourite_status` to take the like off. You can share someone else's cool status by reblogging it; use `reblog_status` for that. To keep tabs on who follows you or who you follow, you can check those lists using `get_followers` and `get_following`, respectively.

### Browsing Feeds and Finding Content

You've got three ways to view content depending on what you want to see. For the general vibe, run `get_public_timeline` to see posts from various people across Pixelfed. If you just wanna catch up on your personal stream, use `get_home_timeline`. Need something specific? Use `get_tag_timeline` to pull up all the content linked to a certain hashtag or topic tag. To get full details on one post—say, checking out what someone posted hours ago—you call `get_status`, which pulls the full content for that single status.

### Managing Your Connections and Profile

Want to expand your network? Use `follow_account` to start following a specific user. If you lose interest in an account, just run `unfollow_account`. To see what a user's profile looks like or check out their bio, call `get_account` with the username. You can also pull up real-time activity using `get_notifications`, which gives you a list of things happening related to your account.

### Core Functionality Summary

To recap: Your agent handles everything from publishing new content and deleting old stuff, to liking posts and sharing them across your feed. You can track down specific user data with tools like `get_account`, get lists of followers via `get_followers`, or simply see what's going on right now using the timeline functions. All you gotta do is tell it which tool to run.

*(Note: The server also includes `verify_credentials` so you can always check if your access token is valid and authenticated with Pixelfed.)*

## Tools

### create_status
Creates a new status post, accepting text content, media IDs, and visibility settings.

### delete_status
Removes an existing status (post) from your profile.

### favourite_status
Likes a specific status post by calling this tool.

### follow_account
Starts following a specified user account on Pixelfed.

### get_account
Retrieves detailed information for any specific Pixelfed account.

### get_followers
Fetches a list of users who follow the specified account.

### get_following
Retrieves the list of accounts that the current user is following.

### get_home_timeline
Gets the most recent posts visible on your personalized home feed.

### get_notifications
Retrieves a list of real-time notifications related to your account activity.

### get_public_timeline
Displays the general, public feed of content from various users.

### get_status
Retrieves the full content and details for a single specific status (post).

### get_tag_timeline
Gets posts associated with a particular hashtag or topic tag.

### reblog_status
Shares an existing status post to your own profile, making it visible to your followers.

### unfavourite_status
Removes a like you previously gave to a specific status.

### unfollow_account
Stops following a specified user account on Pixelfed.

### upload_media
Uploads media (like images) and returns a unique ID needed when creating a status post.

### verify_credentials
Checks if the user's access token is valid and authenticated with Pixelfed.

## Prompt Examples

**Prompt:** 
```
Show me the latest posts from my home timeline on Pixelfed.
```

**Response:** 
```
I've retrieved your home timeline. There are new photos from 'nature_lover' and 'tech_daily'. Would you like to see the details of the most recent post?
```

**Prompt:** 
```
Post a new status saying 'Exploring the Fediverse with MCP!' with public visibility.
```

**Response:** 
```
Status created successfully! Your post is now live on your Pixelfed profile with public visibility.
```

**Prompt:** 
```
Check my recent notifications and tell me if I have any new followers.
```

**Response:** 
```
You have 3 new notifications. 'art_fan' just followed you, and 'photo_pro' liked your latest post. Would you like to follow 'art_fan' back?
```

## Capabilities

### Create a Status
Write and publish new text posts or photos to your Pixelfed profile using `create_status`.

### Like/Unlike Posts
Interact with content by liking an existing status (`favourite_status`) or removing a like via `unfavourite_status`.

### Browse Feeds and Timelines
View your personalized home feed, public trends, or specific hashtag results using tools like `get_home_timeline` or `get_tag_timeline`.

### Manage Connections
Follow new users with `follow_account`, unfollow accounts using `unfollow_account`, and track your network with `get_following`.

### Retrieve Account Data
Fetch profile details for any account or check your list of followers using `get_account` and `get_followers`.

## Use Cases

### Curating a weekly digest
A social media manager needs to see what's happening across 3 different client feeds. Instead of opening three browser tabs, they ask their agent to run `get_home_timeline`, then `get_public_timeline`, and finally check trending tags with `get_tag_timeline` to compile a report.

### Responding to an update
A user sees an interesting post from a colleague. They ask their agent to first grab the status details (`get_status`), then share it using `reblog_status`, and finally add a comment by creating a new status with text.

### Auditing connections
A user wants to know if they've been blocked or who is paying attention. They run `get_followers` on their profile, check the list of people they follow using `get_following`, and review any recent alerts with `get_notifications`.

### Posting a media update
A content creator has new photos ready. They first call `upload_media` to get the unique ID, then immediately use that ID in their prompt when calling `create_status`, making the post live without manual copy-pasting.

## Benefits

- Post content without context switching. Use `upload_media` and then `create_status` to publish a photo with text in one conversation turn.
- Track your network activity instantly. Call `get_notifications` instead of checking an email or logging into the site just for updates.
- Understand who's talking to you. Check your connections using `get_followers` and see what accounts you follow via `get_following`—all from your agent.
- Engage with content directly. Use `favourite_status` or `unfavourite_status` to manage likes without navigating away from your development environment.
- Monitor the trends. Get a broad view of public activity by querying `get_public_timeline` or specific topics using `get_tag_timeline`.

## How It Works

The bottom line is that you talk naturally to your AI client, and it executes the necessary Pixelfed API calls for you.

1. Subscribe to the Pixelfed MCP Server and provide your Instance URL and Personal Access Token.
2. Your AI client authenticates against the server, validating your access with `verify_credentials`.
3. You ask the agent a question (e.g., 'What are my notifications?'), and it uses tools like `get_notifications` to get and report the data.

## Frequently Asked Questions

**How do I check my followers with get_followers?**
You just ask your agent to run `get_followers` and specify which account you want details for. The tool returns a list of user accounts that follow the target profile.

**Can I reblog content using reblog_status?**
Yes, calling `reblog_status` shares an existing status post to your feed. You just need to provide the ID of the status you want to share.

**What's the difference between get_home_timeline and get_public_timeline?**
The home timeline shows posts specifically relevant to *you* (your feed), while `get_public_timeline` shows general, non-curated content that anyone can see.

**Do I need to use upload_media before create_status?**
Yep. You must run `upload_media` first. The tool returns a temporary media ID; you use that specific ID in your prompt when calling `create_status`.

**How do I use `verify_credentials` to check if my access token is valid?**
It confirms that your Personal Access Token and Instance URL are correctly set up. Running this tool verifies your authenticated status, allowing you to execute other actions like posting or reading timelines.

**If I use `delete_status`, does it only remove the post from my feed?**
Yes, `delete_status` immediately removes the specified post from your profile and the Pixelfed network. It's a direct action that deletes content history.

**What information does `get_account` return about my user profile?**
It provides comprehensive details about your account, including your unique handle, display name, and creation date. This helps you confirm which account the agent is acting on behalf of.

**How does `favourite_status` work when I like a post?**
Using `favourite_status` registers your like activity on that specific post. It increments the public engagement count, tracking your interaction with content instantly.

**Can I upload images and post them to my feed using the AI?**
Yes! First, use the `upload_media` tool to upload your file and get a media ID. Then, use the `create_status` tool and include that ID in the `media_ids` array to publish your post.

**How do I see what's trending on my Pixelfed instance?**
You can use the `get_tag_timeline` tool with a specific hashtag to see related posts, or use `get_public_timeline` to see the most recent public posts across the instance.

**Is it possible to manage my followers through this integration?**
Absolutely. You can use `get_followers` and `get_following` to list accounts, and use `follow_account` or `unfollow_account` to manage your connections.