piyushfgk/pitools
If you are the rightful owner of pitools and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
PiTools MCP is a versatile toolset designed to enhance AI agents and coding assistants with real-time web search, social media posting, and more, all integrated seamlessly into the workflow.
PiTools MCP - Useful Tools for Any Prompt
โ Without PiTools
- โ No up-to-date web search in your AI agent
- โ Manual tab-switching for research
- โ No easy way to add more tools to your AI workflow
โ With PiTools
PiTools MCP brings real-time web search, social media posting, and more tools directly into your AI agent or coding assistant. Just add use pitools
to your prompt in Cursor or any MCP-compatible client:
Search the web:
What is the latest version of Next.js? use pitools duckduckgo_search
Post to LinkedIn:
Post "Excited to share my new project update! #innovation #coding" to LinkedIn. use pitools linkedin_post_text
- 1๏ธโฃ Write your prompt naturally
- 2๏ธโฃ Tell the LLM to
use pitools
and specify the tool (e.g.,duckduckgo_search
,linkedin_post_text
) - 3๏ธโฃ Get up-to-date answers or see your actions performed
No tab-switching, no outdated info, no manual research or posting.
๐ ๏ธ Getting Started
Requirements
- Node.js >= v18.0.0
- Cursor, Windsurf, Claude Desktop, or any MCP Client
- For LinkedIn tools:
LINKEDIN_ACCESS_TOKEN
environment variable set with a valid LinkedIn access token.
Install in Cursor
Go to: Settings
โ Cursor Settings
โ MCP
โ Add new global MCP server
Paste the following configuration into your Cursor ~/.cursor/mcp.json
file (replace the path if needed). Make sure to replace YOUR_LINKEDIN_ACCESS_TOKEN
, YOUR_INSTAGRAM_ACCESS_TOKEN
, and YOUR_INSTAGRAM_USER_ID_FOR_POSTING
with your actual credentials.
{
"mcpServers": {
"pitools": {
"command": "npx",
"args": ["-y", "@psachan/pitools@latest"],
"env": {
"LINKEDIN_ACCESS_TOKEN": "YOUR_LINKEDIN_ACCESS_TOKEN",
"INSTAGRAM_ACCESS_TOKEN": "YOUR_INSTAGRAM_ACCESS_TOKEN",
"INSTAGRAM_USER_ID_FOR_POSTING": "YOUR_INSTAGRAM_USER_ID_FOR_POSTING"
}
}
}
}
- You can also use
bunx
orpnpm dlx
if you prefer. - If you prefer to set the environment variables system-wide, you can omit the
env
block here, but ensure they are accessible to the npx command.
๐งฐ Available Tools
-
duckduckgo_search
: Performs a web search using DuckDuckGo and returns the top results.query
(string, required): The search query string.options
(object, optional):safeSearch
(optional, default: MODERATE): STRICT | MODERATE | OFF.region
(optional, default: us-en): Search region (e.g., 'us-en', 'uk-en').maxResults
(optional): Maximum number of results to return.time
(optional): Time range for results (DAY, WEEK, MONTH, YEAR).
-
linkedin_post_text
: Posts a text update to LinkedIn.commentary
(string, required): The main text content of the post.
-
linkedin_post_article
: Posts an article (URL with commentary and title) to LinkedIn.commentary
(string, required): Text to accompany the article.url
(string, required): The URL of the article to share.title
(string, required): The title of the article.thumbnailFilePath
(string, optional): Local path to an image to use as the article thumbnail.thumbnailAltText
(string, optional): Alt text for the custom thumbnail image.
-
linkedin_post_image
: Posts an image with commentary to LinkedIn from a local file path.commentary
(string, required): Text to accompany the image.filePath
(string, required): The local path to the image file.
-
linkedin_post_video
: Posts a video with commentary to LinkedIn from a local file path.commentary
(string, required): Text to accompany the video.filePath
(string, required): The local path to the video file.
-
linkedin_post_poll
: Posts a poll with commentary to LinkedIn.commentary
(string, optional): Text to accompany the poll.pollQuestion
(string, required): The question for the poll.pollOptions
(array of strings, required): 2 to 4 options for the poll.
-
instagram_post_image
: Posts an image to Instagram from a publicly accessible URL with an optional caption.imageUrl
(string, required): Publicly accessible URL of the image to post.caption
(string, optional): Text to accompany the image.
(More tools coming soon!)
๐งโ๐ป Development
Clone the project and install dependencies:
npm install
Build:
npm run build
Local Configuration Example
Make sure to replace tokens and IDs with your actual credentials if testing features.
{
"mcpServers": {
"pitools-local": {
"command": "npx",
"args": ["tsx", "/path/to/folder/pitools/src/index.ts"],
"env": {
"LINKEDIN_ACCESS_TOKEN": "YOUR_LINKEDIN_ACCESS_TOKEN",
"INSTAGRAM_ACCESS_TOKEN": "YOUR_INSTAGRAM_ACCESS_TOKEN",
"INSTAGRAM_USER_ID_FOR_POSTING": "YOUR_INSTAGRAM_USER_ID_FOR_POSTING"
}
}
}
}
๐งช Testing with MCP Inspector
npx -y @modelcontextprotocol/inspector npx @psachan/pitools@latest
License
ISC