Skip to main content
Glama

mcp-google-sheets

find-post.ts2.4 kB
import { createAction, Property } from '@activepieces/pieces-framework'; import { blueskyAuth } from '../common/auth'; import { createBlueskyAgent } from '../common/client'; import { postUrlProperty, extractPostInfoFromUrl } from '../common/props'; export const findPost = createAction({ auth: blueskyAuth, name: 'findPost', displayName: 'Find Post', description: 'Get detailed information about a specific post', props: { postUrl: postUrlProperty, }, async run({ auth, propsValue }) { const { postUrl } = propsValue; try { const agent = await createBlueskyAgent(auth); const postInfo = extractPostInfoFromUrl(postUrl); let atUri = postInfo.uri; if (!atUri && postInfo.handle && postInfo.postId) { const didDoc = await agent.resolveHandle({ handle: postInfo.handle }); if (didDoc.data?.did) { atUri = `at://${didDoc.data.did}/app.bsky.feed.post/${postInfo.postId}`; } else { throw new Error(`Could not resolve handle: ${postInfo.handle}`); } } if (!atUri) { throw new Error('Could not parse the post URL. Please make sure you are using a valid Bluesky post URL like: https://bsky.app/profile/username.bsky.social/post/xxx'); } if (!atUri.startsWith('at://')) { throw new Error('Invalid URI format. Must be an AT-URI starting with "at://" or a valid Bluesky URL'); } const response = await agent.getPosts({ uris: [atUri] }); if (!response.data?.posts || response.data.posts.length === 0) { throw new Error('Post not found or not accessible'); } const post = response.data.posts[0]; return { success: true, uri: atUri, cid: post.cid, record: post.record, author: post.author, indexedAt: post.indexedAt, replyCount: post.replyCount || 0, repostCount: post.repostCount || 0, likeCount: post.likeCount || 0, quoteCount: post.quoteCount || 0, embed: post.embed, labels: post.labels, threadgate: post.threadgate, viewer: post.viewer, retrievedAt: new Date().toISOString(), }; } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error'; throw new Error(`Failed to find post: ${errorMessage}`); } }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server