iFreeWork — public content

iFreeWork services, portfolio, blog, search, contacts and consent-gated messages.

Should I use this

Quality & Safety

A
Description quality
86%
Schema completeness
83%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'get_about' description lacks action verbin get_about
  • LOWTool 'list_services' description lacks action verbin list_services
  • LOWTool 'get_service' description lacks action verbin get_service
  • LOWTool 'get_portfolio_item' description lacks action verbin get_portfolio_item

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,714Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.34% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "content": {
      "url": "https://ifreework.com/mcp"
    }
  }
}

Remote endpoints

https://ifreework.com/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_about(lang)

About page: who Andrey Zubar is, experience, stack and how he works. / Страница «О себе».

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    }
  },
  "additionalProperties": false
}
🟢list_services(lang)

Services offered (AI agents and RAG, Telegram bots, CRM, Laravel backend, integrations, security, crypto). / Список услуг.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    }
  },
  "additionalProperties": false
}
🟢get_service(id, slug, url, lang)

Full text of one service page as Markdown. Pass id, slug or url. / Полный текст услуги.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "description": "Document id from a list result."
    },
    "slug": {
      "type": "string",
      "maxLength": 200,
      "description": "URL slug (alias) from a list result."
    },
    "url": {
      "type": "string",
      "maxLength": 500,
      "description": "Canonical page URL or path from a list result."
    },
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    }
  },
  "additionalProperties": false
}
🟢list_portfolio(lang, category, tag, page, per_page)

Completed portfolio projects with category, tags and summary; filter by category slug/title or tag; paginated. / Работы из портфолио.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Category id, slug or title (see categories in the result)."
    },
    "tag": {
      "type": "string",
      "maxLength": 100
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    }
  },
  "additionalProperties": false
}
🟢get_portfolio_item(id, slug, url, lang)

Full case description of one project as Markdown. Pass id, slug or url. / Полное описание работы.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "description": "Document id from a list result."
    },
    "slug": {
      "type": "string",
      "maxLength": 200,
      "description": "URL slug (alias) from a list result."
    },
    "url": {
      "type": "string",
      "maxLength": 500,
      "description": "Canonical page URL or path from a list result."
    },
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    }
  },
  "additionalProperties": false
}
🟢list_blog_posts(lang, category, page, per_page)

Blog articles, newest first; filter by category; paginated. / Статьи блога.

Input Schema

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    },
    "category": {
      "type": "string",
      "maxLength": 200
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "per_page": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    }
  },
  "additionalProperties": false
}
🟢get_blog_post(id, slug, url, lang)

Full text of one blog article as Markdown. Pass id, slug or url. / Полный текст статьи.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "description": "Document id from a list result."
    },
    "slug": {
      "type": "string",
      "maxLength": 200,
      "description": "URL slug (alias) from a list result."
    },
    "url": {
      "type": "string",
      "maxLength": 500,
      "description": "Canonical page URL or path from a list result."
    },
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    }
  },
  "additionalProperties": false
}
🟢get_contact

Telegram and e-mail of the developer and how to send a message. / Контакты: Telegram и почта.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡send_message(email, message, name, confirmed_by_user, request_id)

Delivers a message to Andrey Zubar through the same mechanism as the contact form on the home page. Requires the human user's approval of the exact text and reply-to e-mail (confirmed_by_user=true). Rate limited; duplicates are not sent twice. / Отправить сообщение владельцу как через форму на главной; только с согласия пользователя.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254,
      "description": "Where the owner should reply. Must belong to the human user who approved the message."
    },
    "message": {
      "type": "string",
      "minLength": 10,
      "maxLength": 4000,
      "description": "The request: what is needed, context, budget or deadlines if known. Plain text, up to 3 links."
    },
    "name": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional sender name."
    },
    "confirmed_by_user": {
      "type": "boolean",
      "description": "Must be true: the human user reviewed and approved this exact text and email."
    },
    "request_id": {
      "type": "string",
      "pattern": "^[a-f0-9-]{36}$",
      "description": "Optional lowercase UUID to make retries idempotent."
    }
  },
  "required": [
    "email",
    "message",
    "confirmed_by_user"
  ],
  "additionalProperties": false
}
🟢search_content(query, lang, sections, limit)

Keyword search across About, Services, Portfolio and Blog; returns ranked pages with snippets and urls. / Поиск по сайту.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Words to look for."
    },
    "lang": {
      "type": "string",
      "enum": [
        "ru",
        "en"
      ],
      "default": "ru",
      "description": "Content language: ru (default) or en. English exists only for translated pages."
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "about",
          "services",
          "portfolio",
          "blog"
        ]
      },
      "description": "Limit to these sections; default all."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools