Horizondatawave_hdw Mcp Server

Horizondatawave_hdw Mcp Server

🚀 HDW 命令行工具文档

HDW(Human Database Worker)是一款强大的命令行工具,专门用于管理人力资源数据。它能轻松实现用户、公司、项目和职位信息的创建、查询、更新和删除操作,为人力资源管理提供高效解决方案。

🚀 快速开始

完成安装后,您可以通过以下命令快速开始:

hdw --version

✨ 主要特性

  • 全面的数据管理:支持对用户、公司、项目和职位信息进行创建、查询、更新和删除操作。
  • 数据导入导出:可以将数据库中的数据导出为 CSV 文件,也能从 CSV 文件中导入数据到数据库。
  • 多模式支持:既可以使用本地数据库,也可以连接远程数据库。

📦 安装指南

安装步骤

  1. 下载安装包:从官方网站或指定镜像站点下载适用于您操作系统的 HDW 安装包。
  2. 解压并安装:在选择的目录下解压安装包,执行安装程序,按照提示完成安装过程。
  3. 配置环境变量:将 HDW 的可执行文件路径添加到系统环境变量中,以便从命令行直接调用 HDW 命令。
  4. 初始化数据库:运行 hdw init 命令,初始化本地数据库并创建必要的表结构。
  5. 连接远程数据库(可选):如果需要使用远程数据库,请配置数据库连接信息,并运行 hdw connect 命令建立连接。

💻 使用示例

基础用法

用户管理

  • 创建用户
# 创建一个新的用户
hdw create-user   

示例

hdw create-user john doe123 john@example.com
  • 更新用户资料
# 更新用户资料
hdw update-user --url  [--new-name ] [--email ] [--phone ]

示例

hdw update-user --url http://example.com/john --new-name John Doe --email john@example.com --phone 1234567890
  • 删除用户
# 删除指定的用户
hdw delete-user 

示例

hdw delete-user http://example.com/john

公司管理

  • 创建公司
# 创建新的公司信息
hdw create-company   

示例

hdw create-company Tech Corp IT 500
  • 更新公司信息
# 更新公司的详细信息
hdw update-company --company-id <id> [--new-name ] [--new-industry ] [--new-size ]

示例

hdw update-company --company-id TC123 --new-name Advanced Tech Corp --new-industry AI --new-size 1000
  • 删除公司
# 删除指定的公司信息
hdw delete-company 

示例

hdw delete-company TC123

项目管理

  • 创建项目
# 创建新的项目条目
hdw create-project    

示例

hdw create-project Space Mission "Mars exploration project" 2024-01-01 2025-12-31
  • 更新项目信息
# 更新项目的详细信息
hdw update-project --project-id <id> [--new-name ] [--new-description ] [--new-start-date ] [--new-end-date ]

示例

hdw update-project --project-id SM123 --new-name Moon Base --new-description "Lunar exploration project" 2024-07-01 2026-12-31
  • 删除项目
# 删除指定的项目条目
hdw delete-project 

示例

hdw delete-project SM123

职位管理

  • 创建职位
# 创建新的职位信息
hdw create-job  <description> <salary> <location>
</code></pre>

<p><strong>示例</strong>:</p>

<pre><code>hdw create-job Data Scientist <span class="hljs-string">"AI research position"</span> <span class="hljs-string">"100000-150000"</span> <span class="hljs-string">"New York, NY"</span>
</code></pre>

<ul>

<li><strong>更新职位信息</strong></li>

</ul>

<pre><code><span class="hljs-comment"># 更新职位的详细信息</span>
hdw update-job --job-id <<span class="hljs-built_in">id</span>> [--new-title <title>] [--new-description <description>] [--new-salary <salary>] [--new-location <location>]
</code></pre>

<p><strong>示例</strong>:</p>

<pre><code>hdw update-job --job-id DS123 --new-title Senior Data Scientist --new-description <span class="hljs-string">"Machine learning research"</span> 150000-200000 <span class="hljs-string">"San Francisco, CA"</span>
</code></pre>

<ul>

<li><strong>删除职位</strong></li>

</ul>

<pre><code><span class="hljs-comment"># 删除指定的职位条目</span>
hdw delete-job <job_id>
</code></pre>

<p><strong>示例</strong>:</p>

<pre><code>hdw delete-job DS123
</code></pre>

<h3>高级用法</h3>

<h4>数据导出与导入</h4>

<ul>

<li><strong>导出数据</strong></li>

</ul>

<pre><code><span class="hljs-comment"># 将数据库中的所有用户、公司、项目和职位信息导出为 CSV 文件</span>
hdw export-data --output <output-file>
</code></pre>

<p><strong>示例</strong>:</p>

<pre><code>hdw export-data --output hdw_export.csv
</code></pre>

<ul>

<li><strong>导入数据</strong></li>

</ul>

<pre><code><span class="hljs-comment"># 从 CSV 文件中导入数据到数据库</span>
hdw import-data --input <input-file>
</code></pre>

<p><strong>示例</strong>:</p>

<pre><code>hdw import-data --input hdw_import.csv
</code></pre>

<h2>附录</h2>

<h3>错误代码</h3>

<table>
<thead>
<tr>
<th>错误代码</th>
<th>详情</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>成功</td>
</tr>
<tr>
<td>2</td>
<td>参数错误</td>
</tr>
<tr>
<td>3</td>
<td>数据库连接失败</td>
</tr>
<tr>
<td>4</td>
<td>权限不足</td>
</tr>
<tr>
<td>5</td>
<td>资源不存在</td>
</tr>
<tr>
<td>6</td>
<td>内部服务器错误</td>
</tr>
<tr>
<td>7</td>
<td>输入数据无效</td>
</tr>
</tbody>
</table>

<h3>示例命令</h3>

<ul>

<li>创建新用户:</li>

</ul>

<pre><code>create_new_user --username <span class="hljs-string">"john"</span> --password <span class="hljs-string">"doe123"</span> --email <span class="hljs-string">"john@example.com"</span>
</code></pre>

<ul>

<li>更新用户资料:</li>

</ul>

<pre><code>update_user_profile --url <span class="hljs-string">"http://example.com/john"</span> --new_name <span class="hljs-string">"John Doe"</span> --email <span class="hljs-string">"john@example.com"</span> --phone <span class="hljs-string">"1234567890"</span>
</code></pre>

<ul>

<li>导出用户数据为 CSV:</li>

</ul>

<pre><code>export_user_data --url <span class="hljs-string">"http://example.com/john"</span> --output_file <span class="hljs-string">"user_export.csv"</span>
</code></pre>

<ul>

<li>删除用户:</li>

</ul>

<pre><code>delete_user --url <span class="hljs-string">"http://example.com/john"</span>
</code></pre>

<ul>

<li>创建新公司:</li>

</ul>

<pre><code>create_new_company --name <span class="hljs-string">"Tech Corp"</span> --industry <span class="hljs-string">"IT"</span> --size <span class="hljs-string">"500"</span>
</code></pre>

<ul>

<li>更新公司信息:</li>

</ul>

<pre><code>update_company_info --company_id <span class="hljs-string">"TC123"</span> --new_name <span class="hljs-string">"Advanced Tech Corp"</span> --new_industry <span class="hljs-string">"AI"</span> --new_size <span class="hljs-string">"1000"</span>
</code></pre>

<ul>

<li>删除公司:</li>

</ul>

<pre><code>delete_company --company_id <span class="hljs-string">"TC123"</span>
</code></pre>

<ul>

<li>创建新项目:</li>

</ul>

<pre><code>create_new_project --name <span class="hljs-string">"Space Mission"</span> --description <span class="hljs-string">"Mars exploration project"</span> --start_date <span class="hljs-string">"2024-01-01"</span> --end_date <span class="hljs-string">"2025-12-31"</span>
</code></pre>

<ul>

<li>更新项目信息:</li>

</ul>

<pre><code>update_project_info --project_id <span class="hljs-string">"SM123"</span> --new_name <span class="hljs-string">"Moon Base"</span> --new_description <span class="hljs-string">"Lunar exploration project"</span> --new_start_date <span class="hljs-string">"2024-07-01"</span> --new_end_date <span class="hljs-string">"2026-12-31"</span>
</code></pre>

<ul>

<li>删除项目:</li>

</ul>

<pre><code>delete_project --project_id <span class="hljs-string">"SM123"</span>
</code></pre>

<ul>

<li>创建新职位:</li>

</ul>

<pre><code>create_new_job --title <span class="hljs-string">"Data Scientist"</span> --description <span class="hljs-string">"AI research position"</span> --salary <span class="hljs-string">"100000-150000"</span> --location <span class="hljs-string">"New York, NY"</span>
</code></pre>

<ul>

<li>更新职位信息:</li>

</ul>

<pre><code>update_job_info --job_id <span class="hljs-string">"DS123"</span> --new_title <span class="hljs-string">"Senior Data Scientist"</span> --new_description <span class="hljs-string">"Machine learning research"</span> --new_salary <span class="hljs-string">"150000-200000"</span> --new_location <span class="hljs-string">"San Francisco, CA"</span>
</code></pre>

<ul>

<li>删除职位:</li>

</ul>

<pre><code>delete_job --job_id <span class="hljs-string">"DS123"</span>
</code></pre>
                                                                        </div>

                    <div class="post-opt mt-20">
                        <ul class="list-inline text-muted">
                            <li><a class="comments"  data-toggle="collapse"  href="#comments-server-5360" aria-expanded="false" aria-controls="comment-5360"><i class="fa fa-comment-o"></i> 0 条评论</a></li>
                                                            <li>分类:<a href="https://mcpseek.info/s/jiaoliu" target="_blank">交流</a>
                                                                                                            </ul>
                    </div>

                    <div class="collapse widget-comments mb-20" id="comments-server-5360" data-source_type="server" data-source_id="5360">
    <div class="widget-comment-list"></div>
            <div class="widget-comment-form row">
            <div class="col-md-12 comment-login-prompt">
                请先 <a href="https://mcpseek.info/login" class="comment-login-link">登录</a> 后评论
            </div>
        </div>
    </div>

<style>
    /* 确保CSS变量存在 - 添加回退值 */
    :root {
        --card-bg: #ffffff;
        --card-border: #e6e8eb;
        --text-primary: #2b2f36;
        --text-secondary: #7a828f;
        --accent-color: #1a73e8;
        --border-color: #e6e8eb;
        --surface-color: #ffffff;
    }
    
    .dark-theme {
        --card-bg: #16181d;
        --card-border: #2b3138;
        --text-primary: #e3e5e9;
        --text-secondary: #9aa0a6;
        --accent-color: #8ab4f8;
        --border-color: #2b3138;
        --surface-color: #16181d;
    }

    /* 评论组件样式 - 更安全的实现 */
    .widget-comments {
        background: var(--card-bg, #ffffff);
        border: 1px solid var(--card-border, #e6e8eb);
        border-radius: 16px;
        padding: 24px;
        box-shadow: 0 6px 14px rgba(17,17,26,.06);
        margin-top: 20px;
    }

    .widget-comment-list {
        margin-bottom: 20px;
    }

    .widget-comment-form {
        margin-top: 20px;
    }

    .comment-textarea {
        width: 100%;
        min-height: 100px;
        padding: 16px;
        border: 1px solid var(--border-color, #e6e8eb);
        border-radius: 12px;
        background: var(--surface-color, #ffffff);
        color: var(--text-primary, #2b2f36);
        font-size: 14px;
        line-height: 1.6;
        resize: vertical;
        transition: border-color 0.2s ease, box-shadow 0.2s ease;
        font-family: inherit;
        box-sizing: border-box;
    }

    .comment-textarea:focus {
        outline: none;
        border-color: var(--accent-color, #1a73e8);
        box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.1);
    }

    .comment-textarea::placeholder {
        color: var(--text-secondary, #7a828f);
    }

    .comment-actions {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 12px;
        margin-top: 16px;
    }

    .comment-cancel-btn {
        padding: 8px 16px;
        border-radius: 20px;
        font-size: 14px;
        text-decoration: none;
        color: var(--text-secondary, #7a828f);
        border: 1px solid var(--border-color, #e6e8eb);
        background: transparent;
        transition: all 0.2s ease;
        cursor: pointer;
        font-family: inherit;
    }

    .comment-cancel-btn:hover {
        background: rgba(138, 180, 248, 0.1);
        color: var(--accent-color, #1a73e8);
        text-decoration: none;
    }

    .comment-submit-btn {
        padding: 10px 24px;
        border-radius: 20px;
        font-size: 14px;
        font-weight: 500;
        border: none;
        background: var(--accent-color, #1a73e8);
        color: white;
        cursor: pointer;
        transition: all 0.2s ease;
        font-family: inherit;
    }

    .comment-submit-btn:hover {
        background: #0d62d9;
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    }

    .comment-submit-btn:active {
        transform: translateY(0);
    }

    .comment-login-prompt {
        text-align: center;
        padding: 20px;
        color: var(--text-secondary, #7a828f);
        font-size: 14px;
    }

    .comment-login-link {
        color: var(--accent-color, #1a73e8);
        text-decoration: none;
        font-weight: 500;
    }

    .comment-login-link:hover {
        text-decoration: underline;
    }

    /* 评论列表项样式 */
    .comment-item {
        padding: 16px;
        border-bottom: 1px solid var(--border-color, #e6e8eb);
    }

    .comment-item:last-child {
        border-bottom: none;
    }

    .comment-header {
        display: flex;
        align-items: center;
        margin-bottom: 12px;
    }

    .comment-avatar {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        margin-right: 12px;
    }

    .comment-author {
        font-weight: 600;
        color: var(--text-primary, #2b2f36);
        font-size: 14px;
    }

    .comment-time {
        font-size: 12px;
        color: var(--text-secondary, #7a828f);
        margin-left: 12px;
    }

    .comment-content {
        color: var(--text-primary, #2b2f36);
        line-height: 1.6;
        font-size: 14px;
    }

    .comment-actions-list {
        display: flex;
        gap: 16px;
        margin-top: 12px;
    }

    .comment-action-btn {
        background: none;
        border: none;
        color: var(--text-secondary, #7a828f);
        font-size: 12px;
        cursor: pointer;
        padding: 4px 8px;
        border-radius: 4px;
        transition: all 0.2s ease;
        font-family: inherit;
    }

    .comment-action-btn:hover {
        background: rgba(138, 180, 248, 0.1);
        color: var(--accent-color, #1a73e8);
    }

    /* 响应式调整 */
    @media (max-width: 768px) {
        .widget-comments {
            padding: 16px;
        }
        
        .comment-actions {
            flex-direction: column;
            align-items: stretch;
        }
        
        .comment-cancel-btn,
        .comment-submit-btn {
            width: 100%;
            text-align: center;
        }
    }
</style>

<script>
// 确保评论功能正常工作的辅助脚本
document.addEventListener('DOMContentLoaded', function() {
    // 评论提交功能
    const commentButtons = document.querySelectorAll('.comment-btn');
    commentButtons.forEach(button => {
        button.addEventListener('click', function(e) {
            e.preventDefault();
            
            const sourceType = this.getAttribute('data-source_type');
            const sourceId = this.getAttribute('data-source_id');
            const token = this.getAttribute('data-token');
            const content = document.getElementById(`comment-${sourceType}-content-${sourceId}`).value;
            
            if (!content.trim()) {
                alert('请输入评论内容');
                return;
            }
            
            // 这里应该调用您的评论提交API
            console.log('提交评论:', { sourceType, sourceId, content, token });
            // add_comment(token, sourceType, sourceId, content, 0);
        });
    });
    
    // 取消按钮功能
    const cancelButtons = document.querySelectorAll('.collapse-cancel');
    cancelButtons.forEach(button => {
        button.addEventListener('click', function(e) {
            e.preventDefault();
            const collapseId = this.getAttribute('data-collapse_id');
            const collapseElement = document.getElementById(collapseId);
            if (collapseElement) {
                collapseElement.classList.remove('show');
            }
        });
    });
});
</script>
                                    </div>


                
                            </div>

            <div class="widget-answers mt-60">
                <div class="btn-group pull-right" role="group">
                    <a href="https://mcpseek.info/s/5360" class="btn btn-default btn-xs  active ">默认排序</a>
                    <a href="https://mcpseek.info/s/5360-sort-created_at" id="sortby-created" class="btn btn-default btn-xs ">时间排序</a>
                </div>

                <h3 class="h4 post-title"> 0 个评论</h3>

                                <div class="text-center">
                    
                </div>

            </div>
                        <div class="widget-answer-form mt-15">

                                    <div class="answer_login_tips mb-20">
                        您需要登录后才可以回答问题,
                    </div>
                            </div>
            
        </div>

        <div class="col-xs-12 col-md-3 side">
            <div class="widget-first-box">
                <ul class="widget-action list-unstyled">
                    <li>
                                                    <button type="button" id="follow-button" class="btn btn-success btn-sm" data-source_type = "server" data-source_id = "5360" data-show_num="true"  data-toggle="tooltip" data-placement="right" title="" data-original-title="关注后将获得更新提醒">关注</button>
                                                <strong id="follower-num">0</strong> 关注
                    </li>
                    <li>
                                                    <button id="collect-button" class="btn btn-default btn-sm" data-source_type = "server" data-source_id = "5360" > 收藏</button>
                                                <strong id="collection-num">0</strong> 收藏,<strong class="no-stress">5</strong> 浏览
                    </li>
                    <li>
                        <i class="fa fa-clock-o"></i>
                                                system
                                                提出于 2025-09-28 11:00</li>
                </ul>
            </div>
            <div class="widget-box">
                <h2 class="h4 widget-box__title">相似服务问题</h2>
                <ul class="widget-links list-unstyled list-text">
                                    </ul>
            </div>
            
            
            <div class="widget-box">
    <h2 class="h4 widget-box-title">热议话题 <a href="https://mcpseek.info/t" title="更多">»</a></h2>
    <ul class="taglist-inline multi">
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/15">代码</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/7">MCP</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/24">黑客</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/17">编程</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/22">查询</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/4">MCP协议</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/28">苹果</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/16">扩散语言模型</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/18">搜索</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/20">前端</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/1">博文</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/19">开发</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/5">Hugging Face</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/21">宾馆</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/3">搜索引擎</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/23">Function Call</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/6">APP Store</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/8">MCP和A2A</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/25">位置</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/9">MCP和RAG</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/26">酒店</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/11">MCP和API</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/27">住宿</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/12">MCP和Agent</a></li>
                    <li class="tagPopup"><a class="tag" data-toggle="popover" href="https://mcpseek.info/t/29">红客</a></li>
            </ul>
</div>
        </div>
    </div>

        </div>
</div>



<footer id="footer" class="site-footer">
  <div class="container">

    <!-- 上层:导航(动态数据) -->
    <div class="footer-nav">
      
      <!-- 组1:热门MCP分类 -->
      <div class="group-title">热门MCP分类</div>
      <div class="row">
        <div class="col-xs-6 col-sm-3">
          <div class="col-title">MCP服务器分类</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/s/kaifa">开发</a></li>
                              <li><a href="https://mcpseek.info/s/biji">笔记</a></li>
                              <li><a href="https://mcpseek.info/s/shujuku">数据库</a></li>
                              <li><a href="https://mcpseek.info/s/jinrong">金融</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="col-title">MCP客户端分类</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/c/gongju">工具</a></li>
                              <li><a href="https://mcpseek.info/c/richeng">日程</a></li>
                              <li><a href="https://mcpseek.info/c/local">本地</a></li>
                              <li><a href="https://mcpseek.info/c/weizhi">位置</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="col-title">热门产品</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/p/11">Lovable AI</a></li>
                              <li><a href="https://mcpseek.info/p/8">Mapbox</a></li>
                              <li><a href="https://mcpseek.info/p/1">Mercury Coder</a></li>
                              <li><a href="https://mcpseek.info/p/6">AlphaCode</a></li>
                              <li><a href="https://mcpseek.info/p/5">Cognition AI</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="col-title">热门博客</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/b/6">MCP 对 AI Agent 意味...</a></li>
                              <li><a href="https://mcpseek.info/b/2">为什么说 MCP 才是真...</a></li>
                              <li><a href="https://mcpseek.info/b/7">百度、阿里、腾讯、字...</a></li>
                              <li><a href="https://mcpseek.info/b/3">MCP的挑战与机遇</a></li>
                              <li><a href="https://mcpseek.info/b/10">全国宾馆入住查询系统...</a></li>
                                    </ul>
        </div>
      </div>

      <div class="footer-divider"></div>

      <!-- 组2:热门内容 -->
      <div class="row">
        <div class="col-xs-6 col-sm-3">
          <div class="group-title">热门课程</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/l/11">苹果AI支持MCP协议 开...</a></li>
                              <li><a href="https://mcpseek.info/l/10">DXT 桌面扩展开发</a></li>
                              <li><a href="https://mcpseek.info/l/9">MCP Server 是什么</a></li>
                              <li><a href="https://mcpseek.info/l/8">MCP和A2A的区别</a></li>
                              <li><a href="https://mcpseek.info/l/7">MCP和Function Call的...</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="group-title">最新产品</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/p/6234">Magifind</a></li>
                              <li><a href="https://mcpseek.info/p/6233">POKY</a></li>
                              <li><a href="https://mcpseek.info/p/6232">Shopper Buddy</a></li>
                              <li><a href="https://mcpseek.info/p/6231">Autron.AI</a></li>
                              <li><a href="https://mcpseek.info/p/6230">MapZot.AI</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="group-title">热门服务器</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/s/2">美团</a></li>
                              <li><a href="https://mcpseek.info/s/1">快搜</a></li>
                              <li><a href="https://mcpseek.info/s/23">学信网</a></li>
                              <li><a href="https://mcpseek.info/s/44">维普</a></li>
                              <li><a href="https://mcpseek.info/s/3">小红书</a></li>
                                    </ul>
        </div>
        <div class="col-xs-6 col-sm-3">
          <div class="group-title">热门客户端</div>
          <ul class="link-list">
                                          <li><a href="https://mcpseek.info/c/4">chatmcp</a></li>
                              <li><a href="https://mcpseek.info/c/3">Cursor</a></li>
                                    </ul>
        </div>
      </div>
    </div>
    <!-- /footer-nav -->

    <!-- 中层:友情链接(仅首页显示,样式统一) -->
    
    <div class="footer-divider"></div>

    <!-- 底层:版权区 -->
    <div class="footer-bottom text-center">
      <span>© 2025
        <a href="https://mcpseek.info">MCPSeek</a>
      </span>
            <span class="sep">|</span>
      <a target="_blank" href="https://mcpseek.info/sitemap">SITEMAP</a>
      <span class="sep">|</span>
      合作伙伴
    </div>

  </div>
</footer>


<style>
@media (max-width: 767px) {
  .footer-nav .col-sm-3 { margin-bottom: 14px; } /* 两列时每块留点下间距 */
}
</style>




<div class="modal fade" id="sendTo_message_model" tabindex="-1"  role="dialog" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
                <h4 class="modal-title" id="exampleModalLabel">发送私信</h4>
            </div>
            <div class="modal-body">
                <form name="messageForm" id="sendTo_message_form">
                    <input type="hidden"  name="_token" value="pASSjD7McxqAix1dTIPPTN9v4MaryMOKXp9uQvoT">
                    <input type="hidden" id="to_user_id" name="to_user_id" value="0" />
                    <div class="form-group">
                        <label for="to_user_name" class="control-label">发给:</label>
                        <span id="to_user_name"></span>
                    </div>
                    <div class="form-group">
                        <label for="message-text" class="control-label">内容:</label>
                        <textarea class="form-control" id="message-text" name="content"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                <button type="button" class="btn btn-primary" id="sendTo_submit">发送</button>
            </div>
        </div>
    </div>
</div>


<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://mcpseek.info/static/js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="https://mcpseek.info/static/css/bootstrap/js/bootstrap.min.js"></script>

<script type="text/javascript">
    var is_login = Boolean("");
    
    // 夜间模式切换功能
    function toggleTheme() {
        const body = document.body;
        const themeIcon = document.getElementById('theme-icon');
        const themeText = document.getElementById('theme-text');
        
        if (body.classList.contains('dark-theme')) {
            // 切换到日间模式
            body.classList.remove('dark-theme');
            themeIcon.className = 'fa fa-moon-o';
            themeText.textContent = '夜间模式';
            localStorage.setItem('theme', 'light');
        } else {
            // 切换到夜间模式
            body.classList.add('dark-theme');
            themeIcon.className = 'fa fa-sun-o';
            themeText.textContent = '日间模式';
            localStorage.setItem('theme', 'dark');
        }
    }
    
    // 页面加载时检查用户的主题偏好
    document.addEventListener('DOMContentLoaded', function() {
        const savedTheme = localStorage.getItem('theme');
        const themeIcon = document.getElementById('theme-icon');
        const themeText = document.getElementById('theme-text');
        
        // 如果用户之前选择过主题,应用该主题
        if (savedTheme === 'dark') {
            document.body.classList.add('dark-theme');
            if (themeIcon) themeIcon.className = 'fa fa-sun-o';
            if (themeText) themeText.textContent = '日间模式';
        } else if (savedTheme === 'light') {
            document.body.classList.remove('dark-theme');
            if (themeIcon) themeIcon.className = 'fa fa-moon-o';
            if (themeText) themeText.textContent = '夜间模式';
        } else {
            // 如果没有保存的偏好,检查系统主题偏好
            if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
                document.body.classList.add('dark-theme');
                if (themeIcon) themeIcon.className = 'fa fa-sun-o';
                if (themeText) themeText.textContent = '日间模式';
            }
        }
    });
    
    // 监听系统主题变化
    if (window.matchMedia) {
        window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function(e) {
            // 只有在用户没有手动设置主题时才自动跟随系统
            if (!localStorage.getItem('theme')) {
                const themeIcon = document.getElementById('theme-icon');
                const themeText = document.getElementById('theme-text');
                
                if (e.matches) {
                    document.body.classList.add('dark-theme');
                    if (themeIcon) themeIcon.className = 'fa fa-sun-o';
                    if (themeText) themeText.textContent = '日间模式';
                } else {
                    document.body.classList.remove('dark-theme');
                    if (themeIcon) themeIcon.className = 'fa fa-moon-o';
                    if (themeText) themeText.textContent = '夜间模式';
                }
            }
        });
    }
</script>
<script src="https://mcpseek.info/js/global.js?v=20191016"></script>
    <div class="modal fade" id="send_report_model"  role="dialog" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
                <h4 class="modal-title" id="reportModalLabel">举报此文章</h4>
            </div>
            <div class="modal-body">
                <form name="reportForm" id="report_form" method="post" action="https://mcpseek.info/report">
                    <input type="hidden"  name="_token" value="pASSjD7McxqAix1dTIPPTN9v4MaryMOKXp9uQvoT">
                    <input type="hidden"  name="source_type" value="">
                    <input type="hidden"  name="source_id" value="">
                                            <div class="radio">
                            <label>
                                <input type="radio" name="report_type" class="reportRadioItem" value="1">
                                垃圾广告信息:
                                <span class="text-muted">广告、推广、测试等内容</span>
                            </label>
                        </div>
                                            <div class="radio">
                            <label>
                                <input type="radio" name="report_type" class="reportRadioItem" value="2">
                                违规内容:
                                <span class="text-muted">色情、暴力、血腥、敏感信息等内容</span>
                            </label>
                        </div>
                                            <div class="radio">
                            <label>
                                <input type="radio" name="report_type" class="reportRadioItem" value="3">
                                不友善内容:
                                <span class="text-muted">人身攻击、挑衅辱骂、恶意行为</span>
                            </label>
                        </div>
                                            <div class="radio">
                            <label>
                                <input type="radio" name="report_type" class="reportRadioItem" value="99">
                                其他原因:
                                <span class="text-muted">请补充说明</span>
                            </label>
                        </div>
                                        <div class="form-group" id="report_reason">
                        <label for="message-text" class="control-label">举报原因:</label>
                        <textarea class="form-control" id="message-text" name="reason"></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
                <button type="button" class="btn btn-primary" id="report_submit_button">举报</button>
            </div>
        </div>
    </div>
</div>    <script src="https://mcpseek.info/static/js/summernote/summernote.min.js"></script>
    <script src="https://mcpseek.info/static/js/summernote/lang/summernote-zh-CN.min.js"></script>
    <script type="text/javascript" src="https://mcpseek.info/static/js/tipask/summernote-ext-attach.js"></script>
    <script type="text/javascript" src="https://mcpseek.info/static/js/fancybox/jquery.fancybox.min.js"></script>
    <script type="text/javascript">
        var invitation_timer = null;
        var question_id = "5360";
        $(document).ready(function() {
            
            /*回答编辑器初始化*/
            $('#answer_editor').summernote({
                lang: 'zh-CN',
                height: 160,
                placeholder:'撰写答案',
                toolbar: [ ['common', ['style','bold','ol','link','picture','attachment','video','clear','codeview','fullscreen']] ],
                callbacks: {
                    onChange:function (contents, $editable) {
                        var code = $(this).summernote("code");
                        $("#answer_editor_content").val(code);
                        $("#draftStatus").html('保存中...');
                        $.post("https://mcpseek.info/user/drafts/create/serveranswer",$("#answer_form").serialize(),function(msg){
                            $("#draftStatus").html('已保存草稿');
                        });
                    },
                    onImageUpload:function(files) {
                        upload_editor_image(files[0],'answer_editor');
                    }
                }
            });

            /*评论提交*/
            $(".comment-btn").click(function(){
                var source_id = $(this).data('source_id');
                var source_type = $(this).data('source_type');
                var to_user_id = $(this).data('to_user_id');
                var token = $(this).data('token');
                var content = $("#comment-"+source_type+"-content-"+source_id).val();
                add_comment(token,source_type,source_id,content,to_user_id);
                $("#comment-content-"+source_id+"").val('');
            });


            $(".widget-comments").on('show.bs.collapse', function () {
                load_comments($(this).data('source_type'),$(this).data('source_id'));
            });

            $(".widget-comments").on('hide.bs.collapse', function () {
                clear_comments($(this).data('source_type'),$(this).data('source_id'));
            });

            /*收藏问题或文章*/
            $("#collect-button").click(function(){
                $("#collect-button").button('loading');
                var source_type = $(this).data('source_type');
                var source_id = $(this).data('source_id');
                var collection_num = $("#collection-num").html();
                $.get('/collect/'+source_type+'/'+source_id,function(msg){
                    $("#collect-button").removeClass('disabled');
                    $("#collect-button").removeAttr('disabled');
                    if(msg=='collected'){
                        $("#collect-button").html('已收藏');
                        $("#collection-num").html(parseInt(collection_num)+1);
                    }else{
                        $("#collect-button").html('收藏');
                        $("#collection-num").html(parseInt(collection_num)-1);
                    }
                });
            });

            /*采纳回答为最佳答案*/
            $(".adopt-answer").click(function(){
                var answer_id = $(this).data('answer_id');
                $("#adoptAnswerSubmit").attr('data-answer_id',answer_id);
                $("#answer_quote").html($(this).data('answer_content'));
            });

            $("#adoptAnswerSubmit").click(function(){
                document.location = "/serveranswer/adopt/"+$(this).data('answer_id');
            });

            /*邀请回答模块逻辑处理*/
            /*私信模块处理*/

            $('#inviteAnswer').on('show.bs.modal', function (event) {

                var button = $(event.relatedTarget);
                var modal = $(this);
                loadInviteUsers(question_id,'');
                loadQuestionInvitedUsers(question_id,'part');

            });


            $("#invite_word").on("keydown",function(){
                if(invitation_timer){
                    clearTimeout(invitation_timer);
                }
                invitation_timer = setTimeout(function() {
                    var word = $("#invite_word").val();
                    console.log(word);
                    loadInviteUsers(question_id,word);
                }, 500);
            });

            $(".invite-question-list").on("click",".invite-question-item-btn",function(){
                var invite_btn = $(this);
                var question_id = invite_btn.data('question_id');
                var user_id = invite_btn.data('user_id');

                $.ajax({
                    type: "get",
                    url:"/server/invite/"+question_id+"/"+user_id,
                    success: function(data){
                        if(data.code > 0){
                            alert(data.message);
                            return false;
                        }
                        invite_btn.html('已邀请');
                        invite_btn.attr("class","btn btn-default btn-xs invite-question-item-btn disabled");
                        loadQuestionInvitedUsers(question_id,'part');
                    },
                    error: function(data){
                        console.log(data);
                    }
                });
            });

            $("#inviteAnswer").on("click","#showAllInvitedUsers",function(){
                loadQuestionInvitedUsers(5360,'all');
            });

            /*tag切换*/
            $('#inviteAnswer a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
                var tabBy = $(this).data("by");
                if( tabBy == 'email' ){
                    $("#inviteAnswer .modal-footer").show();
                }else{
                    $("#inviteAnswer .modal-footer").hide();
                }

            });

            /*邀请邮箱回答*/
            $("#inviteAnswer .invite-email-btn").click(function(){
                var formData = $("#inviteEmailForm").serialize();
                $.ajax({
                    type: "post",
                    url: "/server/inviteEmail/5360",
                    data:formData,
                    success: function(data){
                        if(data.code>0){
                            alert(data.message);
                        }else{
                            alert("邀请成功,邀请邮件已发送!");
                        }
                        $("#inviteAnswer").modal("hide");

                    },
                    error: function(data){
                        console.log(data);
                        alert("操作出错,请稍后再试");
                        $("#inviteAnswer").modal("hide");
                    }
                });
            });


        });


        /**
         * @param  questionId
         * @param  word
         */
        function loadInviteUsers(questionId,word){
            $.ajax({
                type: "get",
                url: "/ajax/loadServerInviteUsers",
                data:{question_id:questionId,word:word},
                success: function(data){
                    console.log(data);
                    var inviteItemHtml = '';
                    if(data.code > 0){
                        inviteItemHtml = '<div class="text-center" id="invite_loading"><p>暂无数据</p></div>';
                    }else{
                        $.each(data.message,function(i,item){
                            inviteItemHtml+= '<div class="col-md-12 invite-question-item">' +
                                    '<img src="'+item.avatar+'" />'+
                                    '<div class="invite-question-user-info">'+
                                    '<a class="invite-question-user-name" target="_blank" href="'+item.url+'">'+item.name+'</a>'+
                                    '<span class="invite-question-user-desc">'+item.tag_name+' 标签下有 '+item.tag_answers+' 个回答</span>'+
                                    '</div>';
                            if(item.isInvited>0){
                               inviteItemHtml += '<button type="button" class="btn btn-default btn-xs invite-question-item-btn disabled" data-question_id="5360"  data-user_id="'+item.id+'">已邀请</button>';
                            }else{
                               inviteItemHtml += '<button type="button" class="btn btn-default btn-xs invite-question-item-btn" data-question_id="5360"  data-user_id="'+item.id+'">邀请回答</button>';
                            }
                            inviteItemHtml += '</div>';
                        });
                    }
                    $("#invite_user_list").html(inviteItemHtml);
                },
                error: function(data){
                    console.log(data);
                    $("#invite_user_list").html('<div class="text-center" id="invite_loading"><p>操作出错</p></div>');

                }
            });
        }

        /*加载已被邀请的用户信息*/
        function loadQuestionInvitedUsers(questionId,type){
            $("#questionInviteUsers").load('/server/'+questionId+'/invitations/'+type);
        }

    </script>

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?9600ddd765c096e681f812a12f6f223e";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

</body>
</html>