# GetStream MCP

> GetStream manages complex social feeds and activity networks for your applications. Use this MCP to programmatically add activities, track who follows what, update user timelines, and manage file collections without touching a database schema.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** activity-feeds, chat-api, social-infrastructure, real-time-sync, user-engagement, api-integration

## Description

This connector lets you orchestrate sophisticated social architectures using natural language instructions given to your AI agent. Instead of building complex microservices just to handle feeds or follow counts, you simply tell the MCP what needs doing—like adding a new activity post to a specific timeline or listing everyone who follows a particular feed. It handles the heavy lifting of managing activities and maintaining relationships between users and content streams automatically. For instance, your agent can quickly scrape Open Graph data from a URL so an activity post is immediately rich with context. When you connect this MCP through Vinkius, you gain access to industry-standard tools for building robust social features right inside your workflow, treating feed management like any other function call.

## Tools

### add_activity_to_feed
Adds a new activity item to any specified feed timeline.

### add_to_collection
Places one or more objects into an existing content collection.

### batch_delete_collections
Deletes multiple specified collections in a single batch operation.

### batch_follow
Makes one account follow several different target feeds simultaneously.

### batch_get_collections
Retrieves data for multiple collections at once.

### batch_post_collections
Creates or updates several collection objects in a single batch request.

### delete_collection_object
Removes a single, specific content collection object.

### delete_file
Deletes a file resource using its URL.

### follow_feed
Establishes a following relationship by making one account follow a target feed.

### get_activities
Retrieves activity records based on an ID or a foreign identifier.

### get_collection_object
Fetches the details for one individual collection object.

### get_feed
Retrieves a paginated list of activities from any specified feed.

### get_open_graph
Scrapes and returns structured data (Open Graph) from a given URL.

### list_feed_followers
Lists all the feeds that are currently following this feed.

### list_feed_follows
Shows which other feeds this specific feed is following.

### partial_update_activity
Updates only selected fields on an existing activity record, leaving all others untouched.

### process_image
Performs operations like resizing or optimizing a given image file.

### remove_activity_from_feed
Removes an existing activity item from its feed timeline.

### unfollow_feed
Breaks a following relationship by making one account unfollow a target feed.

### update_activities
Updates general metadata across multiple activity records.

### update_collection_object
Modifies the details of an individual collection object.

### upload_file
Uploads a generic file to be managed by the system.

### upload_image
Uploads and processes an image file for use in content feeds.

## Prompt Examples

**Prompt:** 
```
Show me the latest activities in the 'user' feed for user ID 'user_123'.
```

**Response:** 
```
I've retrieved the feed for 'user:user_123'. There are 10 recent activities, including a post about 'New Product Launch' and a photo upload. Would you like to see the details of the most recent one?
```

**Prompt:** 
```
Make the feed 'timeline:alice' follow 'user:bob'.
```

**Response:** 
```
Successfully executed the follow command. 'timeline:alice' is now following 'user:bob'. Future activities from Bob will now appear in Alice's timeline.
```

**Prompt:** 
```
Update activity ID 'act_999' to set the 'is_featured' field to true.
```

**Response:** 
```
I have partially updated activity 'act_999'. The 'is_featured' field is now set to true. All other metadata remains unchanged.
```

## Capabilities

### Manage User Timelines
Add or remove activities directly from a specific user's activity feed.

### Control Follower Relationships
Programmatically make an account follow another feed, and list all current followers for any given feed.

### Update Content Metadata
Modify specific fields on existing activities—like marking a post as featured—without rewriting the entire activity record.

### Handle Rich Media and Collections
Upload, process, organize, and delete files or groups of content (collections) within your application's social graph.

### Scrape Web Content Details
Grab structured Open Graph data from a URL to enrich activity posts automatically.

## Use Cases

### Launching a New User Profile Feature
A Product Manager needs to test the new 'Follow' feature. Instead of writing backend integration tests, they ask their agent to run 'Make the feed X follow user:Y.' The MCP executes the tool call instantly, confirming the relationship works, and they move on to testing content creation.

### Content Moderation Audit
A Community Manager needs to audit a specific topic. They instruct their agent to 'List all feeds following this feed' and then use get_activities to pull the last 50 posts, quickly identifying potential spam or policy violations.

### Building an Asset Gallery
A developer needs a feature that groups images into themed galleries. They upload multiple pictures using upload_image and then use add_to_collection to group them all under 'Autumn Vibes,' which is immediately available for display.

### Integrating External Links
A content creator posts a link from an article they just wrote. They instruct their agent to 'Get the open graph data for this URL.' The MCP runs get_open_graph, and the activity post automatically populates with the title, description, and image, making it look professional.

## Benefits

- Stop writing boilerplate code for basic social features. You can manage follower relationships and activity feeds using simple natural language commands, like making an account follow a feed or listing all followers.
- Keep your content rich and up-to-date. Use the get_open_graph tool to automatically pull structured data from any URL so that every posted activity is contextually relevant right out of the gate.
- Handle large amounts of media efficiently. You can upload files using upload_file or process images with process_image, ensuring your content feeds always have high-quality, usable assets.
- Maintain clean data structures. Instead of rewriting whole records, use partial_update_activity to modify single fields on an activity—for example, marking a post as featured—without risking unrelated metadata changes.
- Organize complex media groups easily. Use tools like add_to_collection or batch_post_collections to group related items together, treating collections like first-class objects in your workflow.

## How It Works

The bottom line is, your agent handles all the complex API orchestration so you just talk about what you want done to your social network.

1. Subscribe to the MCP and provide your Stream API Key and JWT Token credentials.
2. Tell your AI agent exactly what social action you need—for example, 'Make this feed follow that user' or 'Add a new activity about X'.
3. The MCP executes the necessary tool calls against the live social infrastructure, updating feeds and relationships immediately.

## Frequently Asked Questions

**Can GetStream MCP handle user following relationships?**
Yes. You can use follow_feed to create a new following relationship and list_feed_followers to see who is already following a feed, making graph management easy.

**How do I add a post to an existing user timeline using GetStream MCP?**
Use the add_activity_to_feed tool. You just need to specify the target feed slug and provide the activity content, letting the MCP handle the posting logic.

**Is get_open_graph used for anything other than links?**
No, it specifically scrapes Open Graph metadata from a URL. This is useful because it allows you to enrich activities with rich data (like titles and descriptions) even if the source link doesn't provide that info.

**What if I only want to update one small part of an activity?**
Use partial_update_activity. This tool is designed so you can change a single field, like setting 'is_featured' to true, without overwriting the rest of the post's data.

**Can I manage media files with GetStream MCP?**
Absolutely. You have dedicated tools like upload_image and process_image that handle file uploads, resizing, and general image processing for your content feeds.