pitools

piyushfgk/pitools

3.2

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.

Tools
7
Resources
0
Prompts
0

PiTools MCP - Useful Tools for Any Prompt

npm version

โŒ 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 or pnpm 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