Waayo, waxaan ka mid ah 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 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 ka mid ah mid ah mid ka mid ah.
😉MCPs waxaa laga yaabaa oo dhan, oo ka mid ah wax soo saarka ugu horeysay ee macluumaadka app.
Waxa uu u isticmaali karaa oo dhan oo ka mid ah macluumaadka ah oo ka mid ah macluumaadka iyo macluumaadka.Postkaiibsadaan oo dhan oo dhan oo aan la socoto! Sidaa, waxaan ka dib markii ay ku dhigi karaa codka Postiz iyo ka soo bandhigay!
The MCP Repository Is a Bit Waayo
Sida loo yaqaan 'MCP' waa in ay ka mid ah nidaamka, oo waa mid ka mid ah loo isticmaali karaa LLMs in ay ku saabsan nidaamka.
There are two primary methods at the moment: Stdio, oo waa mid ka mid ah line command, iyo SSE.
Ma waxaad u baahan yahay in aad u baahan tahay SSE-ka - waa mid ka mid ah wax soo saarka ah oo ka mid ah wax soo saarka ah oo ka mid ah wax soo saarka oo ka mid ah macaamiisha.
Sida loo isticmaali karaa, waxaa loo isticmaali karaa in aad u isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa in aad isticmaali karaa.
Markaas 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 mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ka mid ah mid ah mid ka mid ah mid ah mid ka mid ah.
Waxaan loo isticmaalo WebSockets. Waayo, waxaa laga yaqaan 'sleep mode', oo aad u baahan tahay si ay u aragti.
Qiimeeyaasha
Waxaan ka dhiso SDK dhismaha Anthropic iyo 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 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.
Sidaas, waxaa laga yaabaa in la isticmaalaa authentication iyo in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa in la isticmaalaa.
Waxaan soo dejiso "Transport" ah oo loo isticmaalo rxjs observables - 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, 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
Marka aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay in aad u baahan yahay.
@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}`,
},
];
}
Codka oo dhan waxaa laga yaabaa in Postiz halkan:https://github.com/gitroomhq/postiz-app/tree/main/libraries/nestjs-libraries/src/mcp
Sidaa waa:https://github.com/githroomhq/postiz-app/tree/main/apps/backend/src/mcp
Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka Qalabka
Waxaad ka mid ah in ay ku yaalaa in ay ku yaalaa in ay u baahan tahay in ay u baahan tahay in ay u baahan tahay in ay u baahan tahay in ay u baahan tahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay in ay u baahan yahay.
Sida loo yaabaa Cursor si ay u qaadi karaa post for me, waxaa loo isticmaali karaa in 2024 - this is the last time the model was training.
Waxaan u baahan tahay in la soo saarka config ah, sidaas waxaan loo soo saarkaPOSTIZ_CONFIGURATION_PRERUN
Waayo, LLM ayaa sidoo kale sidoo kale ka heli karaa in ka hor.
Sida loo yaabaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa in ay ku yaalaa.POSTIZ_SCHEDULE_POST
Waxaan ka soo bandhigay in uu ku saabsanconfigId
Nala soo xiriir in la soo xiriirPOSTIZ_GET_CONFIG_ID.
Qalabka dhismaha ee config waa:id: ${makeId(10)} Today date is ${dayjs.utc().format()}
Waxa uu ku yaalaa in la soo xiriir in la soo xiriir, oo loo yaabaa in la soo xiriir in la soo xiriir! :)
Waxaa laga yaabaa in uu ku yaalaa in ay ku yaalaa in ay ku yaalaa UTC ka hor.
Qalabka
Waxaan ahaysaa in ay u shaqeeyaan ugu fiican in la isticmaalaa in la isticmaalaa in ka mid ah macluumaadka badan, sida:
- Haku
- Sida loo soo xiriir Cursor iyo soo xiriir in la soo xiriir post oo aad u shaqeeyaan. Haku
- Waayo, waxaa loo isticmaali karaa 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 ah mid ka mid ah.
- Sida loo isticmaali karaa SaaS, waxaa loo isticmaali karaa CopilotKit iyo loo isticmaali karaa app-ka. Haku
Qalabka MCP
Postkawaa mid ka mid ah macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka macluumaadka mac
Sida loo isticmaali karaa MCP, 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 sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale sidoo kale.
Haku waa 100% free. :)
Ma rabtaa in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan tahay in aad u baahan yahay. ⭐️HTTPS://github.com/gitroomhq/postiz-app