Taariikh cusub

Your Last MCP to Schedule All Your Social Posts!

by Nevo David8m2025/04/15
Read on Terminal Reader

Aad u dheer; In la akhriyo

Postiz waa app oo aad u isticmaali karaa in ay u isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa.
featured image - Your Last MCP to Schedule All Your Social Posts!
Nevo David HackerNoon profile picture

I am pretty addicted to the Last Of Us series. Sorry for the cover.


😉MCPs are everywhere and for a good reason. It's the next step in the evolution of apps.


Being able to use everything from a single chat without accessing any app. It feels native for Postiz to schedule all your social posts from the chat! So, I started to dig into the Postiz code and added to it!

Postiz


MCPE

MCPEMCPEQalabka

The MCP Repository Is a Bit Weird

Cada mid ka mid ah MCP waxay ka mid ah shuruudaha, oo waa mid ka mid ah loo isticmaali karaa LLMs si ay u habboon our nidaamka.


Ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah.

Waqtiga waxaa laga yaabaa in ka mid ah two primary methods at the moment


Eee, waxaan ka mid ah u baahan tahay in ay ka mid ah SSE-ka - waa mid ka mid ah wax soo saarka ah oo ka mid ah wax soo saarka oo ka mid ah wax soo saarka.


Sidaalka waa in ay ku yaalaa in la soo saarka si aad u soo saarka, sidoo kale aad ka soo saarka wax soo saarka (si kastaba ka mid ah SSE waa mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ah mid ka mid ah mid ah mid ah mid ka mid ah mid ah mid ah mid ka mid ah mid ah mid ah mid ka mid ah mid ah mid ka mid ah.


Waqtiga, waxay ku yaalaa xafiisyada ee app, oo ka mid ah? Markaad ka mid ah oo ka mid ah ka mid ah macluumaadka ah oo ka mid ah macluumaadka oo ka mid ah macluumaadka oo ka mid ah macluumaadka.


Waan loo isticmaalo WebSockets. Waxay ku habboonay in ay u habboon, oo aad u baahan yahay in ay ku habboon.

Qalabka

Digging In

Waaq u dhismaha SDK-ka ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah ee codsiga ah.


Waax yar, waxaa laga yaabaa in la isticmaali karaa si ay u isticmaali karaa in la isticmaali karaa si ay u isticmaali karaa si ay u isticmaali karaa.


Waa soo dejisan "Transport" ah oo loo isticmaalo observables rxjs - waa fun. Postiz waxaa la aasaasay sida NestJS, sidaas oo loo isticmaalo router SSE, waxa uu ku yaalaa observable ka dib markii ay ka soo xiriir, si ay u baahan tahay si ay u qiyaasta oo dhan.

import EventEmitter from 'events'; import {finalize, from Event, startWith } from 'rxjs'; @Injectable() export class McpService { static event = new EventEmitter(); constructor( private _mainMcp: MainMcp ) { } async runServer(apiKey: string, organization: string) { const server(company, this._mainMcp).server(); const transport = new McpTransport(company); const observer = from Event(McpService.event), `transport-${Mcp.event, transport_transport_transport_###############################import EventEmitter from 'events';
import { finalize, fromEvent, startWith } from 'rxjs';

@Injectable()
export class McpService {
  static event = new EventEmitter();
  constructor(
    private _mainMcp: MainMcp
  ) {
  }

  async runServer(apiKey: string, organization: string) {
    const server = McpSettings.load(organization, this._mainMcp).server();
    const transport = new McpTransport(organization);

    const observer = fromEvent(
      McpService.event,
      `organization-${organization}`
    ).pipe(
      startWith({
        type: 'endpoint',
        data: process.env.NEXT_PUBLIC_BACKEND_URL + '/mcp/' + apiKey + '/messages',
      }),
      finalize(() => {
        transport.close();
      })
    );

    console.log('MCP transport started');
    await server.connect(transport);

    return observer;
  }

  async processPostBody(organization: string, body: object) {
    const server = McpSettings.load(organization, this._mainMcp).server();
    const message = JSONRPCMessageSchema.parse(body);
    const transport = new McpTransport(organization);
    await server.connect(transport);
    transport.handlePostMessage(message);
    return {};
  }
}

Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka

This waa for you if you are a big fan of OOP frameworks sida NestJS/Laravel/Spring. Waxaan loo helo decorator ah si ay u sameeyo qalabka sida API "endpoints."

Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticmaalka: Isticma @McpTool({ toolName: 'POSTIZ_GET_CONFIG_ID' }) async preRun() { return [ { type: 'text', text: `id: ${makeId(10)} Today date is ${dayjs.utc().format()}`, }, ]; } @McpTool({ toolName: 'POSTIZ_PROVIDERS_LIST' }) async listOfProviders(organization: string) { const list = ( await this._integrationService.getIntegrationsList(organization) ).map((org) => ({ id: org.id, name: org.name, identifier: org.providerIdentifier, picture: org.picture, disabled: org.disabled, profile: org.profile, customer: org.customer ? { id: org.customer.id, name: org.customer.name, } : undefined, })); return [{ type: 'text', text: JSON.stringify(list) }]; } @McpTool({ toolName: 'POSTIZ_SCHEDULE_POST', zod: { type: eenum(['draft', 'scheduled']), configId: string(), generatePictures: boolean(), date: string().describe('UTC TIME'), providerId: string().describe('Use POSTIZ_PROVIDERS_LIST to get the id'), posts: array(object({ text: string(), images: array(string()) })), }, }) async schedulePost( organization: string, obj: { type: 'draft' | 'schedule'; generatePictures: boolean; date: string; providerId: string; posts: { text: string }[]; } ) { const create = await this._postsService.createPost(organization, { date: obj.date, type: obj.type, tags: [], posts: [ { group: makeId(10), value: await Promise.all( obj.posts.map(async (post) => ({ content: post.text, id: makeId(10), image: !obj.generatePictures ? [] : [ { id: makeId(10), path: await this._openAiService.generateImage( post.text, true ), }, ], })) ), // @ts-ignore settings: {}, integration: { id: obj.providerId, }, }, ], }); return [ { type: 'text', text: `Post created successfully, check it here: ${process.env.FRONTEND_URL}/p/${create[0].postId}`, }, ]; }

All the code can be found in Postiz here: https://github.com/gitroomhq/postiz-app/tree/main/libraries/nestjs-libraries/src/mcp

https://github.com/gitroomhq/postiz-app/tree/main/libraries/nestjs-libraries/src/mcp


And here: https://github.com/gitroomhq/postiz-app/tree/main/apps/backend/src/mcp

https://github.com/gitroomhq/postiz-app/tree/main/apps/backend/src/mcpQalabka

Diiwaanka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka

Oo, sidoo kale waxaa laga yaabaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa.


Wala soo xiriir wax soo saarka ah. Haddii aad ku yidhi Cursor si ay u helo post for me, waxa uu sheegay in loo helo in 2024.


Waaq u baahan tahay in la soo xiriir wax soo saarka config, sidaas waxaan loo helo POSTIZ_CONFIGURATION_PRERUN tool.POSTIZ_CONFIGURATION_PRERUN


Haddii aad u baahan tahay in aad u baahan tahay in aad u baahan yahay. In aad POSTIZ_SCHEDULE_POST, waxaan ku yaalaa aasaasay cusub oo ku yaalaa configId oo uu u aragti wax soo saarka config in POSTIZ_GET_CONFIG_ID. The output of the config is:id: ${makeId(10)} Today date is ${day.jsutc().format()}

POSTIZ_SCHEDULE_POSTconfigIdPOSTIZ_GET_CONFIG_ID.id: ${makeId(10)} Today date is ${dayjs.utc().format()}

Dhabka waxaa lagu dhigi karaa LLM oo dhan ka hor, oo loo yaabaa ku yaalaa! :)


Waqtiisa waxaa laga yaabaa in ay ku yaalaa in ay ku saabsan UTC ka hor.

Qalabka

Laga soo xiriir

Waa'aalo in aad u shaqeeyaan ugu fiican in la isticmaalaa in la isticmaalaa in ka mid ah macluumaadka kala duwan, sida:

  • Connect it to Cursor and ask it to schedule a post about your work today.
  • Connect it to Notion and ask to schedule all the team's latest work on social media - check out Composio MCPs.
  • Connect it to any SaaS that has CopilotKit and schedule posts based on the app.
  • Contact la Cursor iyo ka soo xiriir in ay soo xiriir post oo ku saabsan wax soo saarka.
  • Connect it to Notion and ask to schedule all the team's latest work on social media - check out Composio MCPs.
  • Composio MCPs
  • Connect it to any SaaS that has CopilotKit and schedule posts based on the app.
  • CopilotKitQalabka

    Xaabinta MCP

    Postiz is the most robust open-source social media scheduling tool - and now the only scheduler that offers MCP (natively, not with Zapier or something like that)

    Postiz


    Wixii MCP cusub, sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale: Cursor/Windsurf iyo Anthropic clients.


    Waaq oo dhan waa 100% free. :)


    If you like it, please don't forget to star us ⭐️https://github.com/gitroomhq/postiz-app
    OG

    https://github.com/gitroomhq/postiz-app
    OG
    Marka: BrOG

    Trending Topics

    blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks